--- layout: post title: Cartesian products in LINQ (fluent syntax) date: 2012-11-15 11:28:33.000000000 +01:00 type: post published: true status: publish categories: - Programmation tags: - C# - Extension Methods - LINQ meta: _edit_last: '1' _activeshortener: tiny _twitterrelated_short_url: http://tinyurl.com/c9zy2t6 _twitterrelated_short_urlHash: 948d6d7c4ec15ade5ab4ddc074cf0380 sfw_pwd: n6I2BknxPPSO author: login: pierre irrmann email<EMAIL_ADDRESS>display_name: Pierre Irrmann first_name: Pierre last_name: Irrmann ---
Have you ever tried to combine sequences in order to build Cartesian products in LINQ ? This is really easily achieved using the query expressions syntax, writing for instance :
var ints = Enumerable.Range(1, 4); var longs = Enumerable.Range(1, 3).Select(i => ( long )i); var products = from i in ints from l in longs select i * l; |
When I write LINQ queries, I tend to use as often as possible the fluent syntax, as it is more powerful, and allows me to use a wider range of operators. I also try not to mix both syntaxes, because I find it quite confusing. When I want to perform, inside of a more complex query, a simple cross-product as the previous one, the “fluent” equivalent syntax is the following :
var products = ints.SelectMany(i => longs.Select(l => i * l)); |
In fact, this syntax works very well, but I don’t find it as expressive as the first one. And if you go one step further and add a third sequence to the party…
var ints = Enumerable.Range(1, 4); var longs = Enumerable.Range(1, 3).Select(i => ( long )i); var strings = new [] { "a" , "b" , "c" }; var classic = from i in ints from l in longs from s in strings select (i * l).ToString() + s; |
The “fluent” syntax gets even more confusing (at least to me) :
var fluent = ints.SelectMany( i => longs.SelectMany( l => strings.Select(s => (i * l).ToString() + s))); |
I think that what bothers me might be the ever-increasing number of unclosed parenthesis… Anyway, as usual, I played with extensions methods and here is what I came up with, using a new “Cross” method, for the 2 sequences cross-product :
var results = ints .Cross(longs) .Select((i, l) => i * l); |
And the same syntax for the 3 sequences cross product :
var results = ints .Cross(longs) .Cross(strings) .Select((i, l, s) => (i * l).ToString() + s); |
Don’t you find it more expressive ?
Finally, here are the extensions methods implementations :
public static IEnumerable<Tuple<TLeft, TRight>> Cross<TLeft, TRight>( this IEnumerable<TLeft> left, IEnumerable<TRight> right) { return left.SelectMany(l => right.Select(r => Tuple.Create(l, r))); } public static IEnumerable<Tuple<TLeft1, TLeft2, TRight>> Cross<TLeft1, TLeft2, TRight>( this IEnumerable<Tuple<TLeft1, TLeft2>> left, IEnumerable<TRight> right) { return left.SelectMany(l => right.Select(r => Tuple.Create(l.Item1, l.Item2, r))); } public static IEnumerable<TResult> Select<T1, T2, TResult>( this IEnumerable<Tuple<T1, T2>> source, Func<T1, T2, TResult> selector) { return source.Select(t => selector(t.Item1, t.Item2)); } public static IEnumerable<TResult> Select<T1, T2, T3, TResult>( this IEnumerable<Tuple<T1, T2, T3>> source, Func<T1, T2, T3, TResult> selector) { return source.Select(t => selector(t.Item1, t.Item2, t.Item3)); } |
I must admit that those generic methods signatures are horrible, though…


About Us
Giving is Caring
A web application designed to provide support in events, occasions and organizations through
donations. The team built the application to enhance the process of donations and other charity works by providing
an efficient way for donors to find groups and events that need their support. Not to mention, we also give credits
to donors who are generous.
Development Team
Project Manager: Menard Gardose
Backend Developers:
Alvin Yanson
Erul Ubas
Brix Nessia
Vincent Suyo
Designers:
Patrick Legislador
Neal Rubiato
Daniel Molabin
Joshua Tueres
Glenn Nieles
Documentation:
Miriam Gayoba
Mary Ann Mansan
Reyn Villahermosa
Dawn Jaudines


Respond React is a link sharing site for anyone who wants to do more than just get depressed by the news. Every day, people all over the world create petitions, marches, rallies, and crowdfunding campaigns to get their communities involved. We aspire to connect you with them as well as the people affected by those oftentimes harrowing headlines you read on at places like CNN and The New York Times.
In addition, if you're someone who has created a change.org petition, kickstarter.com fund, or a Facebook event and you want more people to see it, register now and start posting your events under any headlines you see on this site!
Don't just react, respond!


|
libguac
1.5.0
|
Defines the guac_user object, which represents a physical connection within a larger, possibly shared, logical connection represented by a guac_client. More...
Go to the source code of this file.
Data Structures | |
| struct | guac_user_info |
| Information exposed by the remote client during the connection handshake which can be used by a client plugin. More... | |
| struct | guac_user |
| Representation of a physical connection within a larger logical connection which may be shared. More... | |
Functions | |
| guac_user * | guac_user_alloc () |
| Allocates a new, blank user, not associated with any specific client or socket. More... | |
| void | guac_user_free (guac_user *user) |
| Frees the given user and all associated resources. More... | |
| int | guac_user_handle_connection (guac_user *user, int usec_timeout) |
| Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake. More... | |
| int | guac_user_handle_instruction (guac_user *user, const char *opcode, int argc, char **argv) |
| Call the appropriate handler defined by the given user for the given instruction. More... | |
| guac_stream * | guac_user_alloc_stream (guac_user *user) |
| Allocates a new stream. More... | |
| void | guac_user_free_stream (guac_user *user, guac_stream *stream) |
| Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to guac_user_alloc_stream(). More... | |
| void | guac_user_stop (guac_user *user) |
| Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected. More... | |
| void | guac_user_abort (guac_user *user, guac_protocol_status status, const char *format,...) |
| Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. More... | |
| void | vguac_user_abort (guac_user *user, guac_protocol_status status, const char *format, va_list ap) |
| Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. More... | |
| void | guac_user_log (guac_user *user, guac_client_log_level level, const char *format,...) |
| Writes a message in the log used by the given user. More... | |
| void | vguac_user_log (guac_user *user, guac_client_log_level level, const char *format, va_list ap) |
| Writes a message in the log used by the given user. More... | |
| guac_object * | guac_user_alloc_object (guac_user *user) |
| Allocates a new object. More... | |
| void | guac_user_free_object (guac_user *user, guac_object *object) |
| Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to guac_user_alloc_object(). More... | |
| void | guac_user_stream_argv (guac_user *user, guac_socket *socket, const char *mimetype, const char *name, const char *value) |
| Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user. More... | |
| void | guac_user_stream_png (guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface) |
| Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. More... | |
| void | guac_user_stream_jpeg (guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality) |
| Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. More... | |
| void | guac_user_stream_webp (guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless) |
| Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. More... | |
| int | guac_user_supports_msg (guac_user *user) |
| Returns whether the given user supports the "msg" instruction. More... | |
| int | guac_user_supports_required (guac_user *user) |
| Returns whether the given user supports the "required" instruction. More... | |
| int | guac_user_supports_webp (guac_user *user) |
| Returns whether the given user supports WebP. More... | |
| char * | guac_user_parse_args_string (guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value) |
| Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value. More... | |
| int | guac_user_parse_args_int (guac_user *user, const char **arg_names, const char **argv, int index, int default_value) |
| Automatically handles a single integer argument received from a joining user, returning the integer value of that argument. More... | |
| int | guac_user_parse_args_boolean (guac_user *user, const char **arg_names, const char **argv, int index, int default_value) |
| Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false). More... | |
Defines the guac_user object, which represents a physical connection within a larger, possibly shared, logical connection represented by a guac_client.
| void guac_user_abort | ( | guac_user * | user, |
| guac_protocol_status | status, | ||
| const char * | format, | ||
| ... | |||
| ) |
Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.
Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.
| user | The user to signal to stop. |
| status | The status to send over the Guacamole protocol. |
| format | A printf-style format string to log. |
| ... | Arguments to use when filling the format string for printing. |
| guac_user* guac_user_alloc | ( | ) |
Allocates a new, blank user, not associated with any specific client or socket.
| guac_object* guac_user_alloc_object | ( | guac_user * | user | ) |
Allocates a new object.
An arbitrary index is automatically assigned if no previously-allocated object is available for use.
| user | The user to allocate the object for. |
| guac_stream* guac_user_alloc_stream | ( | guac_user * | user | ) |
Allocates a new stream.
An arbitrary index is automatically assigned if no previously-allocated stream is available for use.
| user | The user to allocate the stream for. |
| void guac_user_free | ( | guac_user * | user | ) |
Frees the given user and all associated resources.
| user | The guac_user to free. |
| void guac_user_free_object | ( | guac_user * | user, |
| guac_object * | object | ||
| ) |
Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to guac_user_alloc_object().
| user | The user to return the object to. |
| object | The object to return to the pool of available object. |
| void guac_user_free_stream | ( | guac_user * | user, |
| guac_stream * | stream | ||
| ) |
Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to guac_user_alloc_stream().
| user | The user to return the stream to. |
| stream | The stream to return to the pool of available stream. |
| int guac_user_handle_connection | ( | guac_user * | user, |
| int | usec_timeout | ||
| ) |
Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake.
The handshake-related properties of the given guac_user are automatically populated, and guac_user_handle_instruction() is invoked for all instructions received after the handshake has completed. This function blocks until the connection/user is aborted or the user disconnects.
| user | The user whose handshake and entire Guacamole protocol exchange should be handled. The user must already be associated with a guac_socket and guac_client, and the guac_client must already be fully initialized. |
| usec_timeout | The number of microseconds to wait for instructions from the given user before closing the connection with an error. |
| int guac_user_handle_instruction | ( | guac_user * | user, |
| const char * | opcode, | ||
| int | argc, | ||
| char ** | argv | ||
| ) |
Call the appropriate handler defined by the given user for the given instruction.
A comparison is made between the instruction opcode and the initial handler lookup table defined in user-handlers.c. The initial handlers will in turn call the user's handler (if defined).
| user | The user whose handlers should be called. |
| opcode | The opcode of the instruction to pass to the user via the appropriate handler. |
| argc | The number of arguments which are part of the instruction. |
| argv | An array of all arguments which are part of the instruction. |
| void guac_user_log | ( | guac_user * | user, |
| guac_client_log_level | level, | ||
| const char * | format, | ||
| ... | |||
| ) |
Writes a message in the log used by the given user.
The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.
| user | The user logging this message. |
| level | The level at which to log this message. |
| format | A printf-style format string to log. |
| ... | Arguments to use when filling the format string for printing. |
| int guac_user_parse_args_boolean | ( | guac_user * | user, |
| const char ** | arg_names, | ||
| const char ** | argv, | ||
| int | index, | ||
| int | default_value | ||
| ) |
Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false).
Only "true" and "false" are legitimate values for a boolean argument. If the argument provided by the user is blank or invalid, the default value is returned.
| user | The user joining the connection and providing the given arguments. |
| arg_names | A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator. |
| argv | An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator. |
| index | The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed. |
| default_value | The value to return if the provided argument is blank or invalid. |
| int guac_user_parse_args_int | ( | guac_user * | user, |
| const char ** | arg_names, | ||
| const char ** | argv, | ||
| int | index, | ||
| int | default_value | ||
| ) |
Automatically handles a single integer argument received from a joining user, returning the integer value of that argument.
If the argument provided by the user is blank or invalid, the default value is returned.
| user | The user joining the connection and providing the given arguments. |
| arg_names | A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator. |
| argv | An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator. |
| index | The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed. |
| default_value | The value to return if the provided argument is blank or invalid. |
| char* guac_user_parse_args_string | ( | guac_user * | user, |
| const char ** | arg_names, | ||
| const char ** | argv, | ||
| int | index, | ||
| const char * | default_value | ||
| ) |
Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value.
If the argument provided by the user is blank, a newly-allocated string containing the default value is returned.
| user | The user joining the connection and providing the given arguments. |
| arg_names | A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator. |
| argv | An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator. |
| index | The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed. |
| default_value | The value to return if the provided argument is blank. If this value is not NULL, the returned value will be a newly-allocated string containing this value. |
| void guac_user_stop | ( | guac_user * | user | ) |
Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected.
| user | The user to stop. |
| void guac_user_stream_argv | ( | guac_user * | user, |
| guac_socket * | socket, | ||
| const char * | mimetype, | ||
| const char * | name, | ||
| const char * | value | ||
| ) |
Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user.
The argument value stream will be automatically allocated and freed.
| user | The Guacamole user who should receive the connection parameter value. |
| socket | The socket over which instructions associated with the argument value stream should be sent. |
| mimetype | The mimetype of the data within the connection parameter value being sent. |
| name | The name of the connection parameter being sent. |
| value | The current value of the connection parameter being sent. |
| void guac_user_stream_jpeg | ( | guac_user * | user, |
| guac_socket * | socket, | ||
| guac_composite_mode | mode, | ||
| const guac_layer * | layer, | ||
| int | x, | ||
| int | y, | ||
| cairo_surface_t * | surface, | ||
| int | quality | ||
| ) |
Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.
The image stream will be automatically allocated and freed.
| user | The Guacamole user for whom the image stream should be allocated. |
| socket | The socket over which instructions associated with the image stream should be sent. |
| mode | The composite mode to use when rendering the image over the given layer. |
| layer | The destination layer. |
| x | The X coordinate of the upper-left corner of the destination rectangle within the given layer. |
| y | The Y coordinate of the upper-left corner of the destination rectangle within the given layer. |
| surface | A Cairo surface containing the image data to be streamed. |
| quality | The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. |
| void guac_user_stream_png | ( | guac_user * | user, |
| guac_socket * | socket, | ||
| guac_composite_mode | mode, | ||
| const guac_layer * | layer, | ||
| int | x, | ||
| int | y, | ||
| cairo_surface_t * | surface | ||
| ) |
Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.
The image stream will be automatically allocated and freed.
| user | The Guacamole user for whom the image stream should be allocated. |
| socket | The socket over which instructions associated with the image stream should be sent. |
| mode | The composite mode to use when rendering the image over the given layer. |
| layer | The destination layer. |
| x | The X coordinate of the upper-left corner of the destination rectangle within the given layer. |
| y | The Y coordinate of the upper-left corner of the destination rectangle within the given layer. |
| surface | A Cairo surface containing the image data to be streamed. |
| void guac_user_stream_webp | ( | guac_user * | user, |
| guac_socket * | socket, | ||
| guac_composite_mode | mode, | ||
| const guac_layer * | layer, | ||
| int | x, | ||
| int | y, | ||
| cairo_surface_t * | surface, | ||
| int | quality, | ||
| int | lossless | ||
| ) |
Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.
The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of guac_user_supports_webp() or guac_client_supports_webp() prior to calling this function.
| user | The Guacamole user for whom the image stream should be allocated. |
| socket | The socket over which instructions associated with the image stream should be sent. |
| mode | The composite mode to use when rendering the image over the given layer. |
| layer | The destination layer. |
| x | The X coordinate of the upper-left corner of the destination rectangle within the given layer. |
| y | The Y coordinate of the upper-left corner of the destination rectangle within the given layer. |
| surface | A Cairo surface containing the image data to be streamed. |
| quality | The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed. |
| lossless | Zero to encode a lossy image, non-zero to encode losslessly. |
| int guac_user_supports_msg | ( | guac_user * | user | ) |
Returns whether the given user supports the "msg" instruction.
| user | The Guacamole user to check for support of the "msg" instruction. |
| int guac_user_supports_required | ( | guac_user * | user | ) |
Returns whether the given user supports the "required" instruction.
| user | The Guacamole user to check for support of the "required" instruction. |
| int guac_user_supports_webp | ( | guac_user * | user | ) |
Returns whether the given user supports WebP.
If the user does not support WebP, or the server cannot encode WebP images, zero is returned.
| user | The Guacamole user to check for WebP support. |
| void vguac_user_abort | ( | guac_user * | user, |
| guac_protocol_status | status, | ||
| const char * | format, | ||
| va_list | ap | ||
| ) |
Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.
Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.
| user | The user to signal to stop. |
| status | The status to send over the Guacamole protocol. |
| format | A printf-style format string to log. |
| ap | The va_list containing the arguments to be used when filling the format string for printing. |
| void vguac_user_log | ( | guac_user * | user, |
| guac_client_log_level | level, | ||
| const char * | format, | ||
| va_list | ap | ||
| ) |
Writes a message in the log used by the given user.
The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.
| user | The user logging this message. |
| level | The level at which to log this message. |
| format | A printf-style format string to log. |
| ap | The va_list containing the arguments to be used when filling the format string for printing. |


Calculates the optimal level of significance based on a decision-theoretic approach. The optimal level is chosen so that the expected loss from hypothesis testing is minimized. A range of statistical tests are covered, including the test for the population mean, population proportion, and a linear restriction in a multiple regression model. The details are covered in Kim, Jae H. and Choi, In, Choosing the Level of Significance: A Decision-Theoretic Approach (December 18, 2017), available at SSRN: <https://ssrn.com/abstract=2652773> or <doi:10.2139/ssrn.2652773>. See also Kim and Ji (2015) <doi:10.1016/j.jempfin.2015.08.006>.
| Version: | 1.0 |
| Imports: | pwr |
| Published: | 2017-12-21 |
| Author: | Jae H. Kim |
| Maintainer: | Jae H. Kim <J.Kim at latrobe.edu.au> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| CRAN checks: | OptSig results |
| Reference manual: | OptSig.pdf |
| Package source: | OptSig_1.0.tar.gz |
| Windows binaries: | r-devel: OptSig_1.0.zip, r-release: OptSig_1.0.zip, r-oldrel: OptSig_1.0.zip |
| OS X binaries: | r-release: OptSig_1.0.tgz, r-oldrel: OptSig_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=OptSig to link to this page.


****************about copy***************************
It could be said that our story began out of necessity and that would'nt be far from the truth. The economic downturn of the early eighties forced many of Hartford's legendary family owned bars & pubs to be sold off - usually to a corporate entity.
As a result it became nearly impossible to find a good cocktail.  You know. Some funny colored drink you never heard of.
So, a group of local friends scrapped together their life savings and founded BarNone with only one mission - to deliver classic cocktails that are crafted using the finest liquors and historic specifications.
You are welcome
*******************directions**************************If local: you already know where we are so go browse the menu. For those new to Hartford or just visiting: we are located right off the Trumble street exit from either 91 or 84. You really can't miss us. However, for those that don't believe us this map is clickable and will give you directions right to the front door. Hurry up.
**********************hours*****************************189 Pratt Street,
Hartford, CT 06101
(860) 666-6666
<EMAIL_ADDRESS>****************locale*************************Tuesday & Wednesday 10am - 12am
Thursday 10am - 1am
Friday & Saturday 9am - 1am
Sunday 9am - 11pm
Closed Mondays


Static Public Member Functions | |
| static | trim_link ($link, $limit=50) |
| static | addLinks ($string) |
| static | email_links ($string) |
| static | extractEmails ($string) |
| static | getLinks ($str) |
| static | removeImages ($string) |
| static | getAllImages ($data) |
| static | get_title_tag ($page) |
| static | getTitleFromSource ($content) |
| static | containsHTML ($str, $count=false) |
| static | make_page_keywords ($string, $common_words_array, $length=30, $word_length=3, $delim=",") |
Class for working with/ manipulating HTML content. This class is separate from the strings class because of the distinction that the strings class has more to do the the text nodes of HTML whereas this class mostly operates with the element nodes. This is sometimes a difficult distinction to make and there may at times be some overlap
|
static |
automatically creates links out of strings that start with 'www' or 'http'
| string | $string | string of text |
|
static |
| string | $str | |
| bool | int | $count |
|
static |
does the same as above, except for email addresses.
| string | $string | string of text |
|
static |
pulls e-mail addresses from a string
| string | $string | the string we're looking in |
|
static |
| string | $page |
|
static |
gets all of the images
| string | $data |
|
static |
| string | $str |
|
static |
| string | $content |
|
static |
takes a string of text and retrieves a filtered list of keywords within the text
| string | $string | the text to be filtered |
| array | $common_words_array | array of common words to be stripped |
| int | string | $length | the number of words to be included |
| int | string | $word_length | the string length of the words to be included |
| string | $delim | the item being used as delimiter on the string |
|
static |
removes images from a string
| string | $string | the string clean |
|
static |
trims the text from a link so it doesn't b0rk anything
| string | $link | the link |
| int | $limit | the number of characters allowed |


TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011
TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011
TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011
TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011
TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011
TOUR
Weekend Drop-In Sessions in the Sackler Lab
Date & Time
04 Nov 2019, 10.00 to 15.00
Location
246 King Street, NY 10011


Project Setup¶
Read time: 5.1 minutes (506 words)
Step 1: Pick a project name¶
This project provides a Sphinx extension that supports a form of Knuth’s Literate Programming. Most Sphinx extensions are created in the sphinxcontrib namespace, so this project name will be sphinxcontrib-pylit.
Note
There are several packages listed on PyPi with pylit in the name. I first used this name in 2003 as part of my Computer Science Master’s Thesis project at Texas State Uniersity, and I registered the pylit.org name in 2005 [Bla05]. If this causes confusion, I apologize to the others trying to build similar systems.
Step 2: Create Project Directories¶
We begin work on this project by setting up a simple file structure:
Package Structure¶
We create an empty Python package for the project as follows:
$ mkdir -p sphinxcontrib-pylit/sphinxcontrib/pylit
$ cd sphinxcontrib-pylit
$ touch sphinxcontrib/__init__.py
$ touch sphinxcontrib/pylit/__init__.py
The last two commands create empty __init__.py files to identify these directories as packages for Python.
Project Documentation¶
We will be documenting this project using Sphinx and hosting the documentation in Github. The setup I use to do this places all Sphinx source files under a rst directory, and the output HTML files are generated in a docs directory. This makes publishing the final HTML files on Github very simple:
* cd sphinxcontrib-pylit
* mkdir rst
$ mkdir docs
$ touch docs/.nojekyll
That last line stops github from trying to process our web pages using Jekyll.
Step 3: Git Setup¶
I recommend Git as your source code contro system, and Github as the server to host your public view of the project code. I have long used these free tools my Computer Science classes.
Local Git setup¶
Begin by placing this project under Git management. From the project root directory, do this:
$ git init
The creates a hidden **.git** directory used by Git_ to manage your project.
Standard Project Files¶
It is traditional to set up a few basic files in the project root directory. Here are the files I always set up:
README.rst¶
This file will appear on Github when visitors browse your project. At the very least, it should provide some basic information about the project.
sphinxcontrib-pylit
###################
Sphinx extensions for Literate Programming.
This extension supports a version of Dr. Donald Knuth's Literate Programming
within reStructuredText documents. Code detailed within blocks supported by
this extension can be extracted for processing, and saved in a
user-configurable location. The extension also supports running commands
against the extracted code. This extension was developed to support teaching
Computer Science and demonstrating the software development workflow.
* Download: https://pypi.python.org/pypi/sphinxcontrib-pylit/#downloads
* Documentation: http://rblack42.github.io/sphinxcontrib-pylit
* Development: https://github.com/rblack42/sphinxcontrib-pylit/
PyPi Setup¶
This project will be released on PyPi which is where most Python public projects are found. In order to use the standard pip tool to install this project package, we need to add a setup.py file and tweak our .gitignore file.
Note
These steps are detailed in Minimal Structure. You must also register on PyPi to use their system.
Here is a start on the setup.py file:
import os
from setuptools import setup
setup(
name='sphinxcontrib-pylit',
version='0.0.1',
description='Literate Programming extension for Sphinx',
url='https://github.com/rblack42/sphinxcontrib-pylit',
author='Roie R. Black',
<EMAIL_ADDRESS>license='BSD',
packages=['sphinxcontrib', os.path.join('sphinxcontrib', 'pylit')],
zip_safe=False)
With this file in place, we can register the project on PyPi and make sure the project name is available. PyPi now uses a new tool, twine to manage uploading projects. Here are the commands use to set things up:
$ pip install twine
$ python setyp.py build sdist bdist_wheel
$ twine upload -r testpypy dist/*
This uploads the project tot he testpypi website. If things look good there, we can do an “official” upload as follows:
$ twine upload dist/*
Once you complete this step, your project is properly registered on the PyPi system and users can use pip to install the project code.
Finally, we need to add a few more settings to the .gitignore file to keep directories used in publishing the project on PyPi out of our repository:
# Mac
.DS_Store
# Vim
*~
*.swp
# Python
*.py[cod]
__pycache__
_venv
# Sphinx
rst/_build
# Pypi
build
cover
dist
*.egg-info/
Now, we are ready for some testing work!


{% extends 'portal/base.html' %} {% load static %} {% load website_extra %} {% block title %}Elections - ECSS{% endblock %} {% block portalcontent %} {{ election.name }} This election is for ECSS members. {% if election.has_nomination and election.is_nomination_future %} Nomination opens on {{ election.nomination_start|date }} {{ election.nomination_start|time:"H:i" }}. {% else %} Voting opens on {{ election.voting_start|date }} {{ election.voting_start|time:"H:i" }}. {% endif %} {% for position in election.position_set.all %} {{ position.name }} {{ position.description }} {% if not position.nomination_set.all %} There is currently no nomination for this role. {% else %} Current nominations: {% for nomination in position.nomination_set.all|shuffle %} {{ nomination.name }} {% if nomination.nickname %} ({{ nomination.nickname }}) {% endif %} {% endfor %} {% endif %} {% endfor %} {% endblock %}
This election is for ECSS members.
{{ position.description }}
There is currently no nomination for this role.


GoCardless requires your browser to have JavaScript enabled. Learn more
You are viewing the documentation for the Legacy GoCardless API, which was deprecated in 2017.
Click here for the current API documentation.


Clone found
Format: json
- source_id 1 [1:1 - 21:14]
- source_id 1 [1:1 - 22:14]
Clone found
Format: json
Clone found
Format: json
Clone found
Format: json
Clone found
Format: json
Clone found
Format: json
Clone found
Format: json
Clone found
Format: json
2020 © jscpd


Home
Surf Freely
Games
Watch-movies/tv
Forums
Mine Litecoin
!
Choose the server you wish to use, using the navigation below.
Expect more servers to be added in the future.
Server 1 (Local Proxy)
Server Emerald - Shadowsnhd
Server Xenon - Shadowsnhd


Goodday,
In the section of the emonTX V2 shield there you can find a link to this nice project of a French guy who made a three fase monitor with lcd screen and a bargraph displaying.
http://openenergymonitor.org/emon/emontxshield/smt
I think I already spend more time trying to replicate his project than it took him to make it I suspect.
Has anyone here by any chance tried this project ?.
Biggest problem I have is that the guy is using BarGraph and the available library of BarGraph doesn't support I2C. He must have changed the library himself.
I am reasonable with arduino and simple programming but this is way over my head.
Thanks in advance,
Bernhard
Netherlands
Re: Community application using emonTx Shield on Arduino Mega R3
Links to the project etc would be very helpful.
Re: Community application using emonTx Shield on Arduino Mega R3
Does anybody have an idea how the person who made the emonTX with the 4x20 LCD display made it work?
http://www.youtube.com/watch?v=6BLM9C7FD9U
alot of people are having issues with his code.. specificaly the LcdBarGraph lib.
Re: Community application using emonTx Shield on Arduino Mega R3
I've not seen anything posted on here. You could try a PM: http://openenergymonitor.org/emon/user/2127 He's only posted on here once, and that was nearly 2 years ago, so I'm not hopeful that he'll pick it up.
Re: Community application using emonTx Shield on Arduino Mega R3
Thank you. I sent him msg.
Re: Community application using emonTx Shield on Arduino Mega R3
Goodday,
I tried to send this guy a message on several ways and even in French but no luck no answer.
After a lot of effort and puzzling I managed to get bargraph working and with and with an old version of I2C I managed to compile the sketch but apparently it get's stuck most likely because he uses the interrupt kind of emon software. Now I will try to cut and paste his efforts into the "normal"emon tx sketch and try to get it working that way.
Kind regards
Bernhard
Re: Community application using emonTx Shield on Arduino Mega R3
Which I2C lib/version did you use? I have found that the LcdBarGraph system only seems to compile with the stock Arduino LiquidCrystal lib. If you have a link I'd appreciate it! I'd really like to get this up and running.
Otherwise, it's looking more and more like TED :-(
Thanks!
Re: Community application using emonTx Shield on Arduino Mega R3
I would say close this thread or don't worry about it. I was all set to buy all the components from here but then the lack of support and help really discouraged me. I found a TED 5000 and a pro for dirt cheap and went that and its working great.
My personal recommendation to the group is, if a new comer is here and asking questions or help.. try to as much as possible because you'll loose them. I represent a VERY big EV (electric vehicle) following here in the California and would have pushed your product if there was more support.
Another Tesla/Leaf owner told me about his TED setup and it was a done deal from there.
Good luck on this project, I hope it gets more advanced in the following years.
Jason
Re: Community application using emonTx Shield on Arduino Mega R3
madmontero, what are you getting all bitter and twisted about? The original post asked a question about something posted on Youtube by someone who's no longer active on this site. Although you don't know it, I actually sent an email to the French man's private email address, but got no answer. So it's not for want of trying.
If you want to sling mud at the whole OEM community because one visitor has posted something and then moved on (one presumes because he's happy and everything is working), then I think you need to reconsider your attitude.
Re: Community application using emonTx Shield on Arduino Mega R3
Guys sorry for this, it's also a bit my fault.
I tried to answer madmontero from another computer, pasword/username forgot ok I'll do it another time....
Coming weeks I'll pick up this project again and continue where I left it.
I altered the library from bargraph myselve to get it working. Still the rest is not working so there's not much to share yet.
It's a shame not many other people explore the potential of this nice board.
Regards Bernhard


submit
Are you developing an amazing, engaging or shocking 3D web site? Whether your site is about gaming, entertainment, architecture, or anything else-- and whether it's commercial, non-profit or just for fun-- if your web site delivers an artistic real time 3D experience, we encourage you to apply to be a presenter in the 3D Web Fest. If your submission is selected, you’ll have 1 to 3 minutes to do a live demonstration of your web site in front of celebrity guest judges and a live audience. You can bring your own musical accompaniment – or partner with a talented musician or DJ at one of our 3D Web Fest Mixers that will run every few weeks up to the time of the event.
Our Selection Committee will be reviewing submissions in March and April and announcing the selections in late April. The committee will be reviewing submissions using several criteria:
Art Direction
Is the art thought-provoking? Innovative? Unique? Cohesive? Attention will be paid to the use of 3D modeling, texture painting, shaders, procedural geometry.
Animation
We will be evaluating the use of 3D and 2D animation, including key frames, skinning, morphs, procedural textures, shader-based animation.
Narrative
Narrative can really make your work stand out. Does the piece tell a story? Inspire discussion? Raise questions?
Sound Design
Web browsers don't just do graphics; they do audio, too. Works that make good use of sound will be given special consideration.
Interaction Design
The web is an interactive medium, so your piece should be interactive. We have an eye out for works that feature superior interaction design.
Mobile
Though not a requirement, 3D web sites designed specifically for mobile, or that work just as well on mobile devices as they do on PCs will be favored. Consider the possibilities of real time “audience participation”.
Virtual Reality
We are looking for a few immersive pieces that incorporate virtual reality technology such as Oculus Rift or Google Cardboard, and novel input technology like the Leap Motion motion controller.
Hardware/Software Systems
While we would love for all the pieces featured in the 3D Web Fest to run on every platform, we are also quite OK with custom hardware configurations. If your demo requires special hardware to do something truly ground-breaking, by all means go for it! We will give it special consideration.
Installation/Live Performance
We are looking for some pieces that blur the lines between the online and real worlds. We would love to see submissions that incorporate fixed installations and a live performance with multiple participants.
submission guidelines
- - must run natively in the browser
- - must work in the major browsers (FF, Chrome, IE, Safari, Opera) *exception made only for WebVR submissions
- - must be submitted before DATE, 2015
- - all projects must have a working URL to the project
- - all projects must have a video of how they work posted online
- - teams must claim what categories their project falls within
submit your 3d web artwork
Use this form to submit your intention to present, and engage the 3D Web Fest organizers to insure you get all the support you need to create and deliver a great experience.


“Petāni bhoti puttāni,
khādamānā tuvaṁ pure;
Tuvaṁ divā ca ratto ca,
atīva paritappasi.
“Before, when your children passed away,
you would expose them to be eaten.
All day and all night
you’d be racked with despair.
Sājja sabbāni khāditvā,
sataputtāni brāhmaṇī;
Vāseṭṭhi kena vaṇṇena,
na bāḷhaṁ paritappasi”.
Today, brahmin lady, you have exposed
seven children in all to be eaten;
Vāseṭṭhī, what is the reason why
you’re not so filled with despair?”
“Bahūni puttasatāni,
ñātisaṅghasatāni ca;
Khāditāni atītaṁse,
mama tuyhañca brāhmaṇa.
“Many hundreds of sons,
hundreds of family circles,
both mine and yours, brahmin,
have been eaten in the past.
Sāhaṁ nissaraṇaṁ ñatvā,
jātiyā maraṇassa ca;
Na socāmi na rodāmi,
na cāpi paritappayiṁ”.
Having known the escape
from rebirth and death
I neither grieve nor lament,
nor do I despair.”
“Abbhutaṁ vata vāseṭṭhi,
vācaṁ bhāsasi edisiṁ;
Kassa tvaṁ dhammamaññāya,
giraṁ bhāsasi edisiṁ”.
“Wow, Vaseṭṭhī, the words you speak
really are amazing!
Whose teaching did you understand
that you say these things?”
“Esa brāhmaṇa sambuddho,
nagaraṁ mithilaṁ pati;
Sabbadukkhappahānāya,
dhammaṁ desesi pāṇinaṁ.
“Brahmin, the Awakened One
at the city of Mithilā,
teaches the Dhamma so that living creatures
may abandon all suffering.
Tassa brahme arahato,
dhammaṁ sutvā nirūpadhiṁ;
Tattha viññātasaddhammā,
puttasokaṁ byapānudiṁ”.
After hearing the perfected one’s teaching,
brahmin, which is free of all attachments,
having understood the true teaching there,
I’ve swept away grief for children.”
“So ahampi gamissāmi,
nagaraṁ mithilaṁ pati;
Appeva maṁ so bhagavā,
sabbadukkhā pamocaye”.
“I too shall go
to the city of Mithilā.
Hopefully the Buddha may release me
from all suffering.”
Addasa brāhmaṇo buddhaṁ,
vippamuttaṁ nirūpadhiṁ;
Svassa dhammamadesesi,
muni dukkhassa pāragū.
The brahmin saw the Buddha,
liberated, free of attachments.
He taught him the Dhamma,
the sage gone beyond suffering:
Dukkhaṁ dukkhasamuppādaṁ,
dukkhassa ca atikkamaṁ;
Ariyaṁ caṭṭhaṅgikaṁ maggaṁ,
dukkhūpasamagāminaṁ.
suffering, suffering’s origin,
suffering’s transcendence,
and the noble eightfold path
that leads to the stilling of suffering.
Tattha viññātasaddhammo,
pabbajjaṁ samarocayi;
Sujāto tīhi rattīhi,
tisso vijjā aphassayi.
Having understood the true teaching there,
he agreed to go forth.
Three days later
Sujāta realized the three knowledges.
“Ehi sārathi gacchāhi,
rathaṁ niyyādayāhimaṁ;
Ārogyaṁ brāhmaṇiṁ vajja,
‘pabbaji dāni brāhmaṇo;
Sujāto tīhi rattīhi,
tisso vijjā aphassayi’”.
“Please, charioteer, go;
take back this carriage.
Bidding my brahmin lady good health, say:
‘The brahmin has now gone forth.
After three days,
Sujāta realized the three knowledges.’”
Tato ca rathamādāya,
sahassañcāpi sārathi;
Ārogyaṁ brāhmaṇiṁvoca,
“pabbaji dāni brāhmaṇo;
Sujāto tīhi rattīhi,
tisso vijjā aphassayi”.
Then taking the carriage,
along with a thousand coins, the charioteer
bade the brahmin lady good health, and said:
“The brahmin has now gone forth.
After three days,
Sujāta realized the three knowledges.”
“Etañcāhaṁ assarathaṁ,
sahassañcāpi sārathi;
Tevijjaṁ brāhmaṇaṁ sutvā,
puṇṇapattaṁ dadāmi te”.
Hearing that the brahmin had the three knowledges, the lady replied:
“I present to you this horse and carriage,
O charioteer, along with 1000 coins,
and a full bowl as a gift.”
“Tuyheva hotvassaratho,
sahassañcāpi brāhmaṇi;
Ahampi pabbajissāmi,
varapaññassa santike”.
“Keep the horse and carriage, lady,
along with the thousand coins.
I too shall go forth in the presence of him,
this man of such splendid wisdom.”
“Hatthī gavassaṁ maṇikuṇḍalañca,
Phītañcimaṁ gahavibhavaṁ pahāya;
Pitā pabbajito tuyhaṁ,
Bhuñja bhogāni sundarī;
Tuvaṁ dāyādikā kule”.

“Elephants, cattle, jewels and earrings,
such delightful domestic wealth:
having given it up, my father went forth,
racked by grief for his son.
I too shall go forth,
racked by grief for my brother.”
“So te ijjhatu saṅkappo,
yaṁ tvaṁ patthesi sundarī;
Uttiṭṭhapiṇḍo uñcho ca,
paṁsukūlañca cīvaraṁ;
Etāni abhisambhontī,
paraloke anāsavā”.
“Sundarī, may the wish you desire
come true.
Leftovers as gleanings,
and cast-off rags as robes—
make do with these,
free of defilements regarding the next life.”
“Sikkhamānāya me ayye,
dibbacakkhu visodhitaṁ;
Pubbenivāsaṁ jānāmi,
yattha me vusitaṁ pure.
“Ma’am, while I am still a trainee nun,
my clairvoyance is clarified;
I know my past lives,
the places I used to live.
Tuvaṁ nissāya kalyāṇi,
theri saṅghassa sobhane;
Tisso vijjā anuppattā,
kataṁ buddhassa sāsanaṁ.
Relying on a fine lady like you,
a senior nun who beautifies the Sangha,
I’ve attained the three knowledges,
and fulfilled the Buddha’s instructions.
Anujānāhi me ayye,
icche sāvatthi gantave;
Sīhanādaṁ nadissāmi,
buddhaseṭṭhassa santike”.
Give me permission ma’am,
I wish to go to Sāvatthī,
where I shall roar my lion’s roar
before the best of Buddhas.”
“Passa sundari satthāraṁ,
hemavaṇṇaṁ harittacaṁ;
Adantānaṁ dametāraṁ,
sambuddhamakutobhayaṁ”.
“Sundarī, see the Teacher!
Golden colored, golden skinned,
tamer of the untamed,
the Awakened One who fears nothing from any quarter.”
“Passa sundarimāyantiṁ,
vippamuttaṁ nirūpadhiṁ;
Vītarāgaṁ visaṁyuttaṁ,
katakiccamanāsavaṁ.
“See Sundarī coming,
liberated, free of attachments.
desireless, detached,
her task completed, without defilements.”
Bārāṇasito nikkhamma,
tava santikamāgatā;
Sāvikā te mahāvīra,
pāde vandati sundarī.
“Having set forth from Bārāṇasī
and come to your presence, great hero,
your disciple Sundarī
bows at your feet.
Tuvaṁ buddho tuvaṁ satthā,
tuyhaṁ dhītāmhi brāhmaṇa;
Orasā mukhato jātā,
katakiccā anāsavā”.

I’ve completed the task and am free of defilements.”
“Tassā te svāgataṁ bhadde,
tato te adurāgataṁ;
Evañhi dantā āyanti,
satthu pādāni vandikā;
Vītarāgā visaṁyuttā,
katakiccā anāsavā”.
“Then welcome, good lady,
you’re by no means unwelcome.
For this is how the tamed come
bowing at the Teacher’s feet;
desireless, detached,
the task completed, without defilements.”
… Sundarī therī ….


|
Name
|
Description
|
|
|
AccessFailed<TUser, TKey>(TKey)
|
Increments the access failed count for the user
(Defined by UserManagerExtensions).
|
|
|
AddClaim<TUser, TKey>(TKey, Claim)
|
Add a user claim
(Defined by UserManagerExtensions).
|
|
|
AddLogin<TUser, TKey>(TKey, UserLoginInfo)
|
Sync extension
(Defined by UserManagerExtensions).
|
|
|
AddPassword<TUser, TKey>(TKey, String)
|
Add a user password only if one does not already exist
(Defined by UserManagerExtensions).
|
|
|
AddToRole<TUser, TKey>(TKey, String)
|
Add a user to a role
(Defined by UserManagerExtensions).
|
|
|
AddToRoles<TUser, TKey>(TKey, String[])
|
Add a user to several roles
(Defined by UserManagerExtensions).
|
|
|
ChangePassword<TUser, TKey>(TKey, String, String)
|
Change a user password
(Defined by UserManagerExtensions).
|
|
|
ChangePhoneNumber<TUser, TKey>(TKey, String, String)
|
Change a phone number using the verification token
(Defined by UserManagerExtensions).
|
|
|
CheckPassword<TUser, TKey>(TUser, String)
|
Returns true if the password combination is valid for the user
(Defined by UserManagerExtensions).
|
|
|
ConfirmEmail<TUser, TKey>(TKey, String)
|
Confirm the user with confirmation token
(Defined by UserManagerExtensions).
|
|
|
Create<TUser, TKey>(TUser)
|
Create a user with no password
(Defined by UserManagerExtensions).
|
|
|
Create<TUser, TKey>(TUser, String)
|
Create a user and associates it with the given password (if one is provided)
(Defined by UserManagerExtensions).
|
|
|
CreateIdentity<TUser, TKey>(TUser, String)
|
Creates a ClaimsIdentity representing the user
(Defined by UserManagerExtensions).
|
|
|
Delete<TUser, TKey>(TUser)
|
Delete an user
(Defined by UserManagerExtensions).
|
|
|
Find<TUser, TKey>(UserLoginInfo)
|
Sync extension
(Defined by UserManagerExtensions).
|
|
|
Find<TUser, TKey>(String, String)
|
Return a user with the specified username and password or null if there is no match.
(Defined by UserManagerExtensions).
|
|
|
FindByEmail<TUser, TKey>(String)
|
Find a user by email
(Defined by UserManagerExtensions).
|
|
|
FindById<TUser, TKey>(TKey)
|
Find a user by id
(Defined by UserManagerExtensions).
|
|
|
FindByName<TUser, TKey>(String)
|
Find a user by name
(Defined by UserManagerExtensions).
|
|
|
GenerateChangePhoneNumberToken<TUser, TKey>(TKey, String)
|
Generate a token for using to change to a specific phone number for the user
(Defined by UserManagerExtensions).
|
|
|
GenerateEmailConfirmationToken<TUser, TKey>(TKey)
|
Get the confirmation token for the user
(Defined by UserManagerExtensions).
|
|
|
GeneratePasswordResetToken<TUser, TKey>(TKey)
|
Get the password reset token for the user
(Defined by UserManagerExtensions).
|
|
|
GenerateTwoFactorToken<TUser, TKey>(TKey, String)
|
Get a user token for a factor provider
(Defined by UserManagerExtensions).
|
|
|
GenerateUserToken<TUser, TKey>(String, TKey)
|
Get a user token for a specific purpose
(Defined by UserManagerExtensions).
|
|
|
GetAccessFailedCount<TUser, TKey>(TKey)
|
Returns the number of failed access attempts for the user
(Defined by UserManagerExtensions).
|
|
|
GetClaims<TUser, TKey>(TKey)
|
Get a users's claims
(Defined by UserManagerExtensions).
|
|
|
GetEmail<TUser, TKey>(TKey)
|
Get an user's email
(Defined by UserManagerExtensions).
|
|
|
GetLockoutEnabled<TUser, TKey>(TKey)
|
Returns whether the user allows lockout
(Defined by UserManagerExtensions).
|
|
|
GetLockoutEndDate<TUser, TKey>(TKey)
|
Returns the user lockout end date
(Defined by UserManagerExtensions).
|
|
|
GetLogins<TUser, TKey>(TKey)
|
Gets the logins for a user.
(Defined by UserManagerExtensions).
|
|
|
GetPhoneNumber<TUser, TKey>(TKey)
|
Get an user's phoneNumber
(Defined by UserManagerExtensions).
|
|
|
GetRoles<TUser, TKey>(TKey)
|
Get a users's roles
(Defined by UserManagerExtensions).
|
|
|
GetSecurityStamp<TUser, TKey>(TKey)
|
Get the current security stamp for a user
(Defined by UserManagerExtensions).
|
|
|
GetTwoFactorEnabled<TUser, TKey>(TKey)
|
Returns true if two factor is enabled for the user
(Defined by UserManagerExtensions).
|
|
|
GetValidTwoFactorProviders<TUser, TKey>(TKey)
|
Returns a list of valid two factor providers for a user
(Defined by UserManagerExtensions).
|
|
|
HasPassword<TUser, TKey>(TKey)
|
Returns true if a user has a password set
(Defined by UserManagerExtensions).
|
|
|
IsEmailConfirmed<TUser, TKey>(TKey)
|
Returns true if the user's email has been confirmed
(Defined by UserManagerExtensions).
|
|
|
IsInRole<TUser, TKey>(TKey, String)
|
Returns true if the user is in the specified role
(Defined by UserManagerExtensions).
|
|
|
IsLockedOut<TUser, TKey>(TKey)
|
Returns true if the user is locked out
(Defined by UserManagerExtensions).
|
|
|
IsPhoneNumberConfirmed<TUser, TKey>(TKey)
|
Returns true if the user's phone number has been confirmed
(Defined by UserManagerExtensions).
|
|
|
NotifyTwoFactorToken<TUser, TKey>(TKey, String, String)
|
Notify a user with a token from a specific user factor provider
(Defined by UserManagerExtensions).
|
|
|
RemoveClaim<TUser, TKey>(TKey, Claim)
|
Remove a user claim
(Defined by UserManagerExtensions).
|
|
|
RemoveFromRole<TUser, TKey>(TKey, String)
|
Remove a user from a role.
(Defined by UserManagerExtensions).
|
|
|
RemoveFromRoles<TUser, TKey>(TKey, String[])
|
Remove a user from the specified roles.
(Defined by UserManagerExtensions).
|
|
|
RemoveLogin<TUser, TKey>(TKey, UserLoginInfo)
|
Remove a user login
(Defined by UserManagerExtensions).
|
|
|
RemovePassword<TUser, TKey>(TKey)
|
Associate a login with a user
(Defined by UserManagerExtensions).
|
|
|
ResetAccessFailedCount<TUser, TKey>(TKey)
|
Resets the access failed count for the user to 0
(Defined by UserManagerExtensions).
|
|
|
ResetPassword<TUser, TKey>(TKey, String, String)
|
Reset a user's password using a reset password token
(Defined by UserManagerExtensions).
|
|
|
SendEmail<TUser, TKey>(TKey, String, String)
|
Send email with supplied subject and body
(Defined by UserManagerExtensions).
|
|
|
SendSms<TUser, TKey>(TKey, String)
|
Send text message using the given message
(Defined by UserManagerExtensions).
|
|
|
SetEmail<TUser, TKey>(TKey, String)
|
Set an user's email
(Defined by UserManagerExtensions).
|
|
|
SetLockoutEnabled<TUser, TKey>(TKey, Boolean)
|
Sets whether the user allows lockout
(Defined by UserManagerExtensions).
|
|
|
SetLockoutEndDate<TUser, TKey>(TKey, DateTimeOffset)
|
Sets the user lockout end date
(Defined by UserManagerExtensions).
|
|
|
SetPhoneNumber<TUser, TKey>(TKey, String)
|
Set an user's phoneNumber
(Defined by UserManagerExtensions).
|
|
|
SetTwoFactorEnabled<TUser, TKey>(TKey, Boolean)
|
Set whether a user's two factor is enabled
(Defined by UserManagerExtensions).
|
|
|
Update<TUser, TKey>(TUser)
|
Update an user
(Defined by UserManagerExtensions).
|
|
|
UpdateSecurityStamp<TUser, TKey>(TKey)
|
Generate a new security stamp for a user, used for SignOutEverywhere functionality
(Defined by UserManagerExtensions).
|
|
|
VerifyChangePhoneNumberToken<TUser, TKey>(TKey, String, String)
|
Verify that a token is valid for changing the user's phone number
(Defined by UserManagerExtensions).
|
|
|
VerifyTwoFactorToken<TUser, TKey>(TKey, String, String)
|
Verify a user factor token with the specified provider
(Defined by UserManagerExtensions).
|
|
|
VerifyUserToken<TUser, TKey>(TKey, String, String)
|
Validate a user token
(Defined by UserManagerExtensions).
|


User Profile for
Edit
Name:
E-mail:
Interests:
Skills:
Events Hosting
Events Participating
Events Volunteering


Announcing the Release of Apache Flink 1.16
October 28, 2022 - Godfrey He (@godfreyhe)Apache Flink continues to grow at a rapid pace and is one of the most active communities in Apache. Flink 1.16 had over 240 contributors enthusiastically participating, with 19 FLIPs and 1100+ issues completed, bringing a lot of exciting features to the community.
Flink has become the leading role and factual standard of stream processing, and the concept of the unification of stream and batch data processing is gradually gaining recognition and is being successfully implemented in more and more companies. Previously, the integrated stream and batch concept placed more emphasis on a unified API and a unified computing framework. This year, based on this, Flink proposed the next development direction of Flink-Streaming Warehouse (Streamhouse), which further upgraded the scope of stream-batch integration: it truly completes not only the unified computation but also unified storage, thus realizing unified real-time analysis.
In 1.16, the Flink community has completed many improvements for both batch and stream processing:
- For batch processing, all-round improvements in ease of use, stability and performance
have been completed. 1.16 is a milestone version of Flink batch processing and an important
step towards maturity.
- Ease of use: with the introduction of SQL Gateway and full compatibility with Hive Server2, users can submit Flink SQL jobs and Hive SQL jobs very easily, and it is also easy to connect to the original Hive ecosystem.
- Functionality: Join hints let Flink SQL users manually specify join strategies to avoid unreasonable execution plans. The compatibility of Hive SQL has reached 94%, and users can migrate from Hive to Flink at a very low cost.
- Stability: Propose a speculative execution mechanism to reduce the long tail sub-tasks of a job and improve the stability. Improve HashJoin and introduce failure rollback mechanism to avoid join failure.
- Performance: Introduce dynamic partition pruning to reduce the Scan I/O and improve join processing for the star-schema queries. There is 30% improvement in the TPC-DS benchmark. We can use hybrid shuffle mode to improve resource usage and processing performance.
- For stream processing, there are a number of significant improvements:
- Changelog State Backend provides users with second or even millisecond checkpoints to dramatically improve the fault tolerance experience, while providing a smaller end-to-end latency experience for transactional Sink jobs.
- Lookup join is widely used in stream processing. Slow lookup speed, low throughput and delay update are resolved through common cache mechanism, asynchronous io and retriable lookup. These features are very useful, solving the pain points that users often complain about, and supporting richer scenarios.
- From the first day of the birth of Flink SQL, there were some non-deterministic operations that could cause incorrect results or exceptions, which caused great distress to users. In 1.16, we spent a lot of effort to solve most of the problems, and we will continue to improve in the future.
With the further refinement of the integration of stream and batch, and the continuous iteration of the Flink Table Store (0.2 has been released), the Flink community is pushing the Streaming warehouse from concept to reality and maturity step by step.
Understanding Streaming Warehouses #
To be precise, a streaming warehouse is to make data warehouse streaming, which allows the data for each layer in the whole warehouse to flow in real-time. The goal is to realize a Streaming Service with end-to-end real-time performance through a unified API and computing framework. Please refer to the article for more details.
Batch processing #
Flink is a unified stream batch processing engine, stream processing has become the leading role thanks to our long-term investment. We’re also putting more effort to improve batch processing to make it an excellent computing engine. This makes the overall experience of stream batch unification smoother.
SQL Gateway #
The feedback from various channels indicates that SQL Gateway is a highly anticipated feature for users, especially for batch users. This function finally completed (see FLIP-91 for design) in 1.16. SQL Gateway is an extension and enhancement to SQL Client, supporting multi-tenancy and pluggable API protocols (Endpoints), solving the problem that SQL Client can only serve a single user and cannot be integrated with external services or components. Currently SQL Gateway has support for REST API and HiveServer2 Protocol and users can link to SQL Gateway via cURL, Postman, HTTP clients in various programming languages to submit stream jobs, batch jobs and even OLAP jobs. For HiveServer2 Endpoint, please refer to the Hive Compatibility for more details.
Hive Compatibility #
To reduce the cost of migrating Hive to Flink, we introduce HiveServer2 Endpoint and Hive Syntax Improvements in this version:
The HiveServer2 Endpoint allows users to interact with SQL Gateway with Hive JDBC/Beeline and migrate with Flink into the Hive ecosystem (DBeaver, Apache Superset, Apache DolphinScheduler, and Apache Zeppelin). When users connect to the HiveServer2 endpoint, the SQL Gateway registers the Hive Catalog, switches to Hive Dialect, and uses batch execution mode to execute jobs. With these steps, users can have the same experience as HiveServer2.
Hive syntax is already the factual standard for big data processing. Flink has improved compatibility with Hive syntax and added support for several Hive syntaxes commonly used in production. Hive syntax compatibility can help users migrate existing Hive SQL tasks to Flink, and it is convenient for users who are familiar with Hive syntax to use Hive syntax to write SQL to query tables registered in Flink. The compatibility is measured using the Hive qtest suite which contains more than 12K SQL cases. Until now, for Hive 2.3, the compatibility has reached 94.1% for whole hive queries, and has reached 97.3% if ACID queries are excluded.
Join Hints for Flink SQL #
The join hint is a common solution in the industry to improve the shortcomings of the optimizer by manually modifying the execution plans. Join is the most widely used operator in batch jobs, and Flink supports a variety of join strategies. Missing statistics or a poor cost model of the optimizer can lead to the wrong choice of a join strategy, which will cause slow execution or even job failure. By specifying a Join Hint, the optimizer will choose the join strategy specified by the user whenever possible. It could avoid various shortcomings of the optimizer and ensure the production availability of the batch job.
Adaptive Hash Join #
For batch jobs, the hash join operators may fail if the input data is severely skewed, it’s a very bad experience for users. To solve this, we introduce adaptive Hash-Join which can automatically fall back to Sort-Merge-Join once the Hash-Join fails in runtime. This mechanism ensures that the Hash-Join is always successful and improves the stability by gracefully degrading from a Hash-Join to a more robust Sort-Merge-Join.
Speculative Execution for Batch Job #
Speculative execution is introduced in Flink 1.16 to mitigate batch job slowness which is caused by problematic nodes. A problematic node may have hardware problems, accident I/O busy, or high CPU load. These problems may make the hosted tasks run much slower than tasks on other nodes, and affect the overall execution time of a batch job.
When speculative execution is enabled, Flink will keep detecting slow tasks. Once slow tasks are detected, the nodes that the slow tasks locate in will be identified as problematic nodes and get blocked via the blocklist mechanism (FLIP-224). The scheduler will create new attempts for the slow tasks and deploy them to nodes that are not blocked, while the existing attempts will keep running. The new attempts process the same input data and produce the same data as the original attempt. Once any attempt finishes first, it will be admitted as the only finished attempt of the task, and the remaining attempts of the task will be canceled.
Most existing sources can work with speculative execution (FLIP-245).
Only if a source uses SourceEvent
, it must implement SupportsHandleExecutionAttemptSourceEvent
interface to support
speculative execution. Sinks do not support speculative execution yet so that
speculative execution will not happen on sinks at the moment.
The Web UI & REST API are also improved (FLIP-249) to display multiple concurrent attempts of tasks and blocked task managers.
Hybrid Shuffle Mode #
We have introduced a new Hybrid Shuffle Mode for batch executions. It combines the advantages of blocking shuffle and pipelined shuffle (in streaming mode).
- Like blocking shuffle, it does not require upstream and downstream tasks to run simultaneously, which allows executing a job with little resources.
- Like pipelined shuffle, it does not require downstream tasks to be executed after upstream tasks finish, which reduces the overall execution time of the job when given sufficient resources.
- It adapts to custom preferences between persisting less data and restarting less tasks on failures, by providing different spilling strategies.
Note: This feature is experimental and by default not activated.
Further improvements of blocking shuffle #
We further improved the blocking shuffle usability and performance in this version, including adaptive network buffer allocation, sequential IO optimization and result partition reuse which allows multiple consumer vertices reusing the same physical result partition to reduce disk IO and storage space. These optimizations can achieve an overall 7% performance gain for the TPC-DS test with a scale of 10 TB. In addition, two more compression algorithms (LZO and ZSTD) with higher compression ratio were introduced which can further reduce the storage space with some CPU cost compared to the default LZ4 compression algorithm.
Dynamic Partition Pruning #
For batch jobs, partitioned tables are more widely used than non-partitioned tables in production environments. Currently Flink has support for static partition pruning, where the optimizer pushes down the partition field related filter conditions in the WHERE clause into the Source Connector during the optimization phase, thus reducing unnecessary partition scan IO. The star-schema is the simplest of the most commonly used data mart patterns. We have found that many user jobs cannot use static partition pruning because partition pruning information can only be determined in execution, which requires dynamic partition pruning techniques, where partition pruning information is collected at runtime based on data from other related tables, thus reducing unnecessary partition scan IO for partitioned tables. The use of dynamic partition pruning has been validated with the 10 TB dataset TPC-DS to improve performance by up to 30%.
Stream Processing #
In 1.16, we have made improvements in Checkpoints, SQL, Connector and other fields, so that stream computing can continue to lead.
Generalized incremental checkpoint #
Changelog state backend aims at making checkpoint intervals shorter and more predictable, this release is prod-ready and is dedicated to adapting changelog state backend to the existing state backends and improving the usability of changelog state backend:
- Support state migration
- Support local recovery
- Introduce file cache to optimize restoring
- Support switch based on checkpoint
- Improve the monitoring experience of changelog state backend
- expose changelog’s metrics
- expose changelog’s configuration to webUI
Table 1: The comparison between Changelog Enabled / Changelog Disabled on value state (see this blog for more details)
{:class=“table table-bordered”}
| Percentile | End to End Duration | Checkpointed Data Size* | Full Checkpoint Data Size* |
|---|---|---|---|
| 50% | 311ms / 5s | 14.8MB / 3.05GB | 24.2GB / 18.5GB |
| 90% | 664ms / 6s | 23.5MB / 4.52GB | 25.2GB / 19.3GB |
| 99% | 1s / 7s | 36.6MB / 5.19GB | 25.6GB / 19.6GB |
| 99.9% | 1s / 10s | 52.8MB / 6.49GB | 25.7GB / 19.8GB |
RocksDB rescaling improvement & rescaling benchmark #
Rescaling is a frequent operation for cloud services built on Apache Flink, this release leverages deleteRange to optimize the rescaling of Incremental RocksDB state backend. deleteRange is used to avoid massive scan-and-delete operations, for upscaling with a large number of states that need to be deleted, the speed of restoring can be almost increased by 2~10 times.
Improve monitoring experience and usability of state backend #
This release also improves the monitoring experience and usability of state backend. Previously, RocksDB’s log was located in its own DB folder, which made debugging RocksDB not so easy. This release lets RocksDB’s log stay in Flink’s log directory by default. RocksDB statistics-based metrics are introduced to help debug the performance at the database level, e.g. total block cache hit/miss count within the DB.
Support overdraft buffer #
A new concept of overdraft network buffer
is introduced to mitigate the effects of uninterruptible blocking a subtask thread during back pressure,
which can be turned on through the taskmanager.network.memory.max-overdraft-buffers-per-gate
configuration parameter.
Starting from 1.16.0, Flink subtask can request by default up to 5 extra (overdraft) buffers over
the regular configured amount. This change can slightly increase memory consumption of
the Flink Job but vastly reduce the checkpoint duration of the unaligned checkpoint.
If the subtask is back pressured by downstream subtasks and the subtask requires more than
a single network buffer to finish what it’s currently doing, overdraft buffer comes into play.
Read more about this in the documentation.
Timeout aligned to unaligned checkpoint barrier in the output buffers of an upstream subtask #
This release updates the timing of switching from Aligned Checkpoint (AC) to Unaligned Checkpoint (UC). With UC enabled, if execution.checkpointing.aligned-checkpoint-timeout is configured, each checkpoint will still begin as an AC, but when the global checkpoint duration exceeds the aligned-checkpoint-timeout, if the AC has not been completed, then the checkpoint will be switched to unaligned.
Previously, the switch of one subtask needs to wait for all barriers from upstream. If the back pressure is severe, the downstream subtask may not receive all barriers within checkpointing-timeout, causing the checkpoint to fail.
In this release, if the barrier cannot be sent from the output buffer to the downstream task
within the execution.checkpointing.aligned-checkpoint-timeout
, Flink lets upstream subtasks
switch to UC first to send barriers to downstream, thereby decreasing
the probability of checkpoint timeout during back pressure.
More details can be found in this documentation.
Non-Determinism In Stream Processing #
Users often complain about the high cost of understanding stream processing. One of the pain points is the non-determinisim in stream processing (usually not intuitive) which may cause wrong results or errors. These pain points have been around since the early days of Flink SQL.
For complex streaming jobs, now it’s possible to detect and resolve potential correctness issues before running. If the problems can’t be resolved completely, a detailed message could prompt users to adjust the SQL so as to avoid introducing non-deterministic problems. More details can be found in the documentation.
Enhanced Lookup Join #
Lookup join is widely used in stream processing, and we have introduced several improvements:
- Adds a unified abstraction for lookup source cache and related metrics to speed up lookup queries
- Introduces the configurable asynchronous mode (ALLOW_UNORDERED) via job configuration or lookup hint to significantly improve query throughput without compromising correctness.
- Retryable lookup mechanism gives users more tools to solve the delayed updates issue in external systems.
Retry Support For Async I/O #
Introduces a built-in retry mechanism for asynchronous I/O that is transparent to the user’s existing code, allowing flexibility to meet the user’s retry and exception handling needs.
PyFlink #
In Flink 1.15, we have introduced a new execution mode ’thread’ mode in which the user-defined Python functions will be executed in the JVM via JNI instead of in a separate Python process. However, it’s only supported for Python scalar functions in the Table API & SQL in Flink 1.15. In this release, we have provided more comprehensive support for it. It has also been supported in the Python DataStream API and also Python table functions in the Table API & SQL.
We are also continuing to fill in the last few missing features in Python API. In this release, we have provided more comprehensive support for Python DataStream API and supported features such as side output, broadcast state, etc and have also finalized the windowing support. We have also added support for more connectors and formats in the Python DataStream API, e.g. added support for connectors elasticsearch, kinesis, pulsar, hybrid source, etc and formats orc, parquet, etc. With all these features added, the Python API should have aligned most notable features in the Java & Scala API and users should be able to develop most kinds of Flink jobs using Python language smoothly.
Others #
New SQL Syntax #
In 1.16, we extend more DDL syntaxes which could help users to better use SQL:
- USING JAR supports dynamic loading of UDF jar to help platform developers to easily manage UDF.
- CREATE TABLE AS SELECT (CTAS) supports users to create new tables based on existing tables and queries.
- ANALYZE TABLE supports users to manually generate table statistics so that the optimizer could generate better execution plans.
Cache in DataStream for Interactive Programming #
Supports caching the result of a transformation via DataStream#cache. The cached intermediate result is generated lazily at the first time the intermediate result is computed so that the result can be reused by later jobs. If the cache is lost, it will be recomputed using the original transformations. Currently only batch mode is supported. This feature is very useful for ML and interactive programming in Python.
History Server & Completed Jobs Information Enhancement #
We have enhanced the experiences of viewing completed jobs’ information in this release.
- JobManager / HistoryServer WebUI now provides detailed execution time metrics, including duration tasks spent in each execution state and the accumulated busy / idle / back-pressured time during running.
- JobManager / HistoryServer WebUI now provides aggregation of major SubTask metrics, grouped by Task or TaskManager.
- JobManager / HistoryServer WebUI now provides more environmental information, including environment variables, JVM options and classpath.
- HistoryServer now supports browsing logs from external log archiving services.
Protobuf format #
Flink now supports the Protocol Buffers (Protobuf) format. This allows you to use this format directly in your Table API or SQL applications.
Introduce configurable RateLimitingStrategy for Async Sink #
The Async Sink was implemented in 1.15 to allow users to easily implement their own custom asynchronous sinks. We have now extended it to support a configurable RateLimitingStrategy. This means sink implementers can now customize how their Async Sink behaves when requests fail, depending on the specific sink. If no RateLimitingStrategy is specified, it will default to the current default of AIMDScalingStrategy.
Upgrade Notes #
We aim to make upgrades as smooth as possible, but some of the changes require users to adjust some parts of the program when upgrading to Apache Flink 1.16. Please take a look at the release notes for a list of adjustments to make and issues to check during upgrades.


--- title: "Boxelder Bugs" layout: "default" ---
Box elder bugs (Leptocoris trivittatus) are about half an inch long and are black with red-orange stripes on their backs. They prefer female box elder trees (Acer negundo) as host plants on which they spend the warm summer months. They also live on other trees, including silver maple and green ash. The bugs breed in summer and both adults and nymphs suck sap from leaves, twigs and seeds of the host tree. Their feeding habits are not usually harmful to the host plant. Emerging from nearly microscopic eggs laid on leaves, the immature insects or nymphs are covered with a rigid shell. As the insects grow, they must shed or molt their outer skin layer. The insect is soft bodied immediately after molting, but within a few hours, the skin hardens and begins to take on color. The box elder bug undergoes five such molts before reaching adulthood.
Box elder bugs do not sting or bite. In large numbers, however, they can be a nuisance and when crushed they emit a foul odor and their body fluids can stain clothing or other material. In the fall, the bugs congregate on the south or west sides of house walls and foundations to spend the winter. They are particularly fond of hiding in cracks and small openings or under siding or wood framing of buildings. In the spring, they come out of hiding and move back to the host trees to resume their life cycle.
Spraying the bugs with insecticides is not usually warranted. Sealing or caulking cracks and openings around the exterior of buildings makes it more difficult for box elder bugs to congregate and hide.


New Zealand volcano webcam captures tourists in crater moments before eruption
(Reuters) - A webcam set up on New Zealand’s White Island volcano shows at least one group of tourists were inside the crater moments before it erupted and blanketed the area in a massive ash cloud.
A crater rim camera owned and operated by New Zealand geological hazards agency GeoNet shows groups of people walking near the rim inside the crater, where white smoke constantly billows at a low level, in the hour leading up to the eruption at 2:11 p.m..
The camera, along with three others from different vantage points, captures and posts images online of the volcano, also known by its Maori name of Whakaari, every 10 minutes.
At 2:00 p.m. the crater rim camera catches a group of people - tiny specks in relation to the vast volcano - right at the edge of the rim.
At 2:10 p.m. - just a minute before the eruption - the group is headed away from the rim, following a well-worn track across the crater.
It is unclear whether the group, which appears to be made up of around a dozen people, were alerted to flee or were continuing a tour, unaware of the looming danger.
The next camera shot at 2:20 p.m. appears to show a piece of hardware, as though the camera has fallen or been damaged.
Several people were killed and injured with others reported missing after the eruption. Rescue helicopters were sent to the island, which is uninhabited but which is frequently visited by tourists on day trips.
The other three cameras trained on the volcano show a similar trajectory in the images captured at 2:20 p.m. The crater floor camera goes black, the west rim camera shows a massive plume of black and grey smoke.
A camera showing the entire island from the east coast of New Zealand’s North Island, about 50 km (30 miles) away, recorded the smoke plume rising thousands of feet into the sky.


A B C D E F G H I J L M N O P R S T U V W
All Classes All Packages
All Classes All Packages
All Classes All Packages
O
- OBJECT_CLASS - Static variable in class com.cyberfront.crdt.GenericCRDTManager
-
Property label for the object class property
- OBJECT_CLASS - Static variable in class com.cyberfront.crdt.operation.GenericOperationManager
-
JSON label for storing / managing object class
- objectClass - Variable in class com.cyberfront.crdt.GenericCRDTManager
-
The object class.
- objectClass - Variable in class com.cyberfront.crdt.operation.GenericOperationManager
-
The object class to instantiate new objects.
- objectId - Variable in class com.cyberfront.crdt.sample.simulation.SimCRDTManager
-
The id of the object this CRDT manager is associated with.
- objectId - Variable in class com.cyberfront.crdt.sample.simulation.SimOperationManager
-
Identifier of the object which is
- op - Variable in class com.cyberfront.crdt.operation.Operation
-
Memoized version of the operation to save on processing.
- op - Variable in class com.cyberfront.crdt.operation.OperationManager
-
The op bound with the metadata.
- OP - Static variable in class com.cyberfront.crdt.operation.Operation
- OP - Static variable in class com.cyberfront.crdt.operation.OperationManager
-
JSON property name for the operation a given manager is managing
- OP - Static variable in class com.cyberfront.crdt.unittest.AssessmentSupport
-
Name of the operation tag in the JSON operations
- Operation - Class in com.cyberfront.crdt.operation
-
The Operation class is intended to be a base / abstract class for the set of operations which would normally be expected to be performed on a persistence store.
- Operation(Operation) - Constructor for class com.cyberfront.crdt.operation.Operation
-
This is essentially a copy constructor for duplicating some source AbstractOperation
- Operation(Operation.OperationType, Long) - Constructor for class com.cyberfront.crdt.operation.Operation
-
This constructor initializes elements of this abstract class instance given an operation and a timestamp associated with executing the operation.
- Operation(JsonNode, Long) - Constructor for class com.cyberfront.crdt.operation.Operation
-
This instantiates a new UpdateOperation given an operation in a JsonNode and a timestamp.
- Operation(UUID, Operation.OperationType, JsonNode, Long) - Constructor for class com.cyberfront.crdt.operation.Operation
-
Fully specified operation constructor which directs the values of all elements in the class instance
- Operation.OperationType - Enum in com.cyberfront.crdt.operation
-
The Enum OperationType lists the types of operations which comprise the types of operations which can be performed on JSON objects
- operationId - Variable in class com.cyberfront.crdt.sample.simulation.SimOperationManager
-
Identifier for the operation
- OperationManager - Class in com.cyberfront.crdt.operation
-
This is the base class for wrapping AbstractOperations.
- OperationManager(OperationManager) - Constructor for class com.cyberfront.crdt.operation.OperationManager
-
Copy constructor to copy from a source OperationManager
- OperationManager(OperationManager.StatusType, Operation) - Constructor for class com.cyberfront.crdt.operation.OperationManager
-
Instantiates a new op manager given a status and an op
- OperationManager.StatusType - Enum in com.cyberfront.crdt.operation
-
The Enum StatusType.
- operations - Variable in class com.cyberfront.crdt.LastWriteWins.TrialResult
-
The set of operations to process; they are processed in timestamp order
- OPERATIONS - Static variable in class com.cyberfront.crdt.unittest.AssessmentSupport
-
Constant containing the desired operations
- OperationTwoSet - Class in com.cyberfront.crdt
-
This is an abstract class which defines a Two Set CRDT.
- OperationTwoSet() - Constructor for class com.cyberfront.crdt.OperationTwoSet
-
Default constructor for the two set instance...
- OperationTwoSet(OperationTwoSet) - Constructor for class com.cyberfront.crdt.OperationTwoSet
-
Copy constructor which duplicates the state of the given CRDT instance
- OperationTwoSet(Collection<Operation>, Collection<Operation>) - Constructor for class com.cyberfront.crdt.OperationTwoSet
-
COnstructor to specifically define the add and remove sets
- OperationType() - Constructor for enum com.cyberfront.crdt.operation.Operation.OperationType
- Operator() - Constructor for class com.cyberfront.crdt.unittest.TestOperator.Operator
-
Default constructor which initialized fields to their default values
- Operator(long, long, long, boolean, boolean) - Constructor for class com.cyberfront.crdt.unittest.TestOperator.Operator
-
Constructor to deliberately initialize each field to the associated values provided
- ownerId - Variable in class com.cyberfront.crdt.sample.simulation.SimCRDTManager
-
The UUID associated with the node which owns this CRDT instance and which is responsible for approving / rejecting operations.
All Classes All Packages


Toggle navigation
MIDAS@IIITD
Research
Team
Papers
Blog
Openings
More
News
Events
2020
Kshitij Rajput, Raghav Kapoor, Puneet Mathur, Hitkul, Ponnurangam Kumaraguru, and Rajiv Ratn Shah, Transfer Learning for Detecting Hateful Sentiments in Code Switched Language
Springer
(2020)
Hitesh Nankani, Hritwik Dutta, Harsh Shrivastava, Rama Krishna P V N S, Debanjan Mahata, and Rajiv Ratn Shah, Multilingual Sentiment Analysis
Springer
(2020)
Anjali Bhavan, Mohit Sharma, Mehak Piplani, Pankaj Chauhan, Hitkul, and Rajiv Ratn Shah, Deep Learning Approaches for Speech Emotion Recognition
Springer
(2020)
Hitkul, Simra Shahid, Shivangi Singhal, Debanjan Mahata, Ponnurangam Kumaraguru, and Rajiv Ratn Shah, Aspect Based Sentiment Analysis of Financial Headlines and Microblogs
Springer
(2020)
Yaman Kumar, Dhruva Sahrawat, Shubham Maheshwari, Debanjan Mahata, Amanda Stent, Yifang Yin, Rajiv Ratn Shah, Roger Zimmermann, Harnessing GANs for Zero-shot Learning of New Classes in Visual Speech Recognition.
AAAI
(2020)
2019
Akash Gautam, Puneet Mathur, Ramit Sawhney, Debanjan Mahata, Rakesh Gosangi, Rajiv Ratn Shah, MeTooMA: Multi-Aspect Annotations of Tweets Related to the MeToo movement.
ICWSM, 2020
(2019)
Amit Jindal, Dwaraknath Gnaneshwar, Ramit Sawhney, Rajiv Ratn SHAH, Leveraging BERT with Mix Up for Sentence Classification
AAAI Student Abstract, 2020.
(2019)
Gyanesh Anand, Akash Gautam, Puneet Mathur, Rajiv Ratn SHAH, Ramit Sawhney, An Iterative Approach for Identifying Complaint Based Tweets in Social Media Platforms
AAAI Student Abstract, 2020
(2019)
Puneet Mathur, Ramit Sawhney, Rajiv Ratn SHAH, Suicide Risk Assessment via Temporal Psycholinguistic Modeling
AAAI Student Abstract, 2020
(2019)
Shivangi Singhal, Anubha Kabra, Mohit Sharma, Rajiv Ratn Shah, Tanmoy Chakro- barty, Ponnurangam Kumaraguru, SpotFake+: A Multimodal Framework for Fake News Detection via Transfer Learning
AAAI Student Abstract
(2019)
Avinash Swaminathan, Raj Kuwar Gupta, Raymond Zhang, Debanjan Mahata, Rakesh Gosangi, Rajiv Ratn SHAH, Keyphrase Generation for Scientific Articles using GANs
AAAI Student Abstract
(2019)
Maitree Leekha, MANSI AGARWAL, Ramit Sawhney, Rajiv Ratn SHAH, Debanjan Mahata, Emotion Analysis on Social Media: Impact of Psychological and Contextual Cues
AAAI Student Abstract
(2019)
Palak Goenka, Mehak Piplani, Ramit Sawhney, Puneet Mathur, Rajiv Ratn SHAH, ESAS: Towards Practical and Explainable Short Answer Scoring
AAAI Student Abstract, 2020
(2019)
Anjali Bhavan, Mohit Sharma, Ramit Sawhney, Rajiv Ratn SHAH, Analysis of Parliamentary Debate Transcripts Using Community-Based Graphical Approaches.
AAAI Student Abstract, 2020
(2019)
Dhruva Sahrawat, Mohit Agarwal, Sanchit Sinha, Aditya Adhikary, Mansi Agarwal, Rajiv Ratn Shah, Roger Zimmermann, Video Summarization using Global Attention with Memory Network and LSTM
2019 IEEE Fifth International Conference on Multimedia Big Data (BigMM)
(2019)
Nilay Shrivastava, Astitwa Saxena, Yaman Singla, Rajiv Ratn Shah, Amanda, Debanjan Mahata, Preeti Kaur, Roger Zimmermann,, MobiVSR: Efficient and Light-weight Neural Network for Visual Speech Recognition on Mobile Devices.
 Detecting Trolling Prone Images on Instagram.
2019 IEEE Fifth International Conference on Multimedia Big Data (BigMM)
(2019)
Ranjodh Singh, Meghna P Ayyar, Tata Sri Pavan, Sandeep Gosain and Rajiv Ratn Shah, Automating Car Insurence Claims using Deep Learning Techniques.
2019 IEEE Fifth International Conference on Multimedia Big Data (BigMM)
(2019)
Automatic Speech Recognition for Real-time Systems, Automatic Speech Recognition for Real-time Systems
2019 IEEE Fifth International Conference on Multimedia Big Data (BigMM)
(2019)
Baani Leen Kaur Jolly, Palash Aggrawal, Surabhi S Nath, Viresh Gupta, Manraj Singh Grover, Rajiv Ratn Shah, Universal EEG Encoder for Learning Diverse Intelligent Tasks
IEEE Big Multimedia
:4 (2019)
Harsh Shrivastava, Rama Krishna P V N S, Karmanya Aggarwal, Meghna P Ayyar, Yifang Yin, Rajiv Ratn Shah, Roger Zimmermann, Facefetch: An Efficient and Scalable Face Retrieval System That uses Your Visual Memory
IEEE BigMM
:338 (2019)
Ramit Sawhney, Arijit Ghosh Chowdhury, Aniket Didolkar, Rajiv Ratn Shah, CISNet - Leveraging Community Interaction and Social Network Graphs For Detection Of Religious Hate Speech In Arabic
ACM Hypertext, 2019
(2019)
Sarthak Anand, Debanjan Mahata, Kartik Aggarwal, Laiba Mehnaz, Simra Shahid, Haimin Zhang, Yaman Kumar, Rajiv Ratn Shah, Karan Uppal, MIDAS at SemEval-2019 Task 9: Suggestion Mining from Online Reviews using ULMFiT.
Proceedings of the 13th International Workshop on Semantic Evaluation (SemEval-2019)
(2019)
Debanjan Mahata, Haimin Zhang, Karan Uppal, Yaman Kumar, Rajiv Ratn Shah, Simra Shahid, Laiba Mehnaz, Sarthak Anand, MIDAS at SemEval-2019 Task 6: Identifying Offensive Posts and Targeted Offense from Twitter
Proceedings of the 13th International Workshop on Semantic Evaluation (SemEval-2019),
(2019)
2018
Yaman Kumar, Agniv Sharma, Abhigyan Khaund, Akash Kumar, Ponnurangam Ku- maraguru, Rajiv Ratn Shah, Roger Zimmermann, IceBreaker: Solving Cold Start Problem for Video Recommendation Engines
20th IEEE International Symposium on Multimedia (ISM2018
(2018)
Yaman Kumar, Rohit Jain, Mohd Salik, Rajiv Ratn Shah, Roger Zimmermann, Yifang Yin, MyLipper: A Personalized System for Speech Reconstruction using Multi-view Visual Feeds
IEEE International Symposium on Multimedia (ISM)
:159 (2018)
Deepanshu Gaur, Meghna Ayyar, Ashutosh Kumar Singh, Rajiv Ratn Shah, Multilingual Author Profiling from SMS
FIRE 2018 challenge
(2018)
Megha Ayyar, Puneet Mathur, Rajiv Ratn Shah, Shree Gopal Sharma, Harnessing AI for Kidney Glomeruli Classification
IEEE ISM 2018
(2018)
Puneet Mathur, Ramit Sawhney, Megha Ayyar, Rajiv Ratn Shah, Did you offend me? Classification of Offensive Tweets in Hinglish Language
EMNLP
AWL2 (2018)
Yaman Kumar, Swati Aggarwal, Debanjan Mahata, Rajiv Shah, Ponnurangam Kumaraguru, Roger Zimmermann, Get IT Scored using AutoSAS - An Automated System for Scoring Short Answers
AAAI
(2018)
Puneet Mathur, Megha Ayyar, Sahil Chopra, Simra Shahid, Laiba Mehnaz, Rajiv Ratn Shah, Identification of Emergency Blood Donation Request on Twitter
EMNLP
SMM4H :27-31 (2018)
Ramit Sawhney, Rajiv Ratn Shah, Puneet Mathur, Prachi Manchanda, Raj Singh, Exploring and Learning Suicidal Ideation Connotations in Social Media with DL
EMNLP
WASSA (2018)
Himanshu Choudhary, Aditya Kumar Pathak, Rajiv Ratn Shah, Ponnurangam Kumaraguru, Neural Machine Translation for English-Tamil
EMNLP
WMT (2018)
Raghav Kapoor, Yaman Kumar, Kshitij Rajput, Rajiv Ratn Shah, Ponnurangam Kumaraguru, Roger Zimmermann, Mind Your Language: Abuse and Offense Detection for Code-Switched Languages
AAAI
(2018)
Khwaja Mohd Salik, Yaman Kumar, Rohit Jain, Swati Aggarwal, Rajiv Ratn Shah, Roger Zimmermann, DeepLip: Speaker Independent Speech Synthesis using Multi-View Lipreading
AAAI
(2018)
Yaman Kumar, Rohit Jain, Khwaja Mhmd, Salik, Rajiv Ratn Shah, Yifang Yi, Roger Zimmermann, Lipper: Synthesizing Thy Speech using Multi-View Lipreading
AAAI
(2018)
Megha Ayyar, Puneet Mathur, Rajiv Ratn Shah, Shree Gopal Sharma, Exploring Classification of Histological Disease Bio-markers from Renal Biopsy Images
WACV
(2018)
Nupur Baghel, Yaman Kumar, Paavini Nanda, Rajiv Ratn Shah, Debanjan Mahata, Roger Zimmerman, Kiki Kills: Identifying Dangerous Challenge Videos from Social Media
(2018)
Yaman Kumar, Mayank Aggarwal, Pratham Nawal, Shin'ichi Satoh, Rajiv Ratn Shah, Roger Zimmerman, Harnessing AI for Speech Reconstruction using Multi-view Silent Video Feed
ACM Multimedia
(2018)
Yifang Yin, Rajiv Ratn Shah, Roger Zimmerman, Learning and Fusing Multimodal Deep Features for Acoustic Scene Categorization
ACM Multimedia
(2018)
Puneet Mathur, Rajiv Ratn Shah, Ramit Sawhney, Debanjan Mahata, Detecting Offensive Tweets in Hindi-English Code-Switched Language
ACL
:1-9 (2018)
Debanjan Mahata, John Kuriakose, Rajiv Ratn Shah, Roger Zimmermann, Key2Vec: Automatic Ranked Keyphrase Extraction from Scientific Articles using Phrase Embeddings
NAACL
:634-639 (2018)
, #phramacovigilance - Exploring Deep Learning Techniques for Identifying Mentions of Medication Intake from Twitter
arXiv
:Debanjan Mahata, Jasper Friedrichs, Rajiv Ratn Shah, Hitkul (2018)
Hitkul Jangid, Shivangi Singhal, Rajiv Ratn Shah, Roger Zimmermann, Aspect-Based Financial Sentiment Analysis using Deep Learning
WWW '18 Companion Proceedings of the The Web Conference 2018
:1961-1966 (2018)
, Theme-weighted Ranking of Keywords from Text Documents using Phrase Embeddings
arXiv
:Debanjan Mahata, John Kuriakose, Rajiv Ratn Shah, Roger Zimmerman, John R. Talburt (2018)
, A Multimodal Approach to Predict Social Media Popularity
arXiv
:Mayank Meghawat,Satyendra Yadav, Debanjan Mahata, Yifang Yin, Rajiv Ratn Shah, Roger Zimmerman (2018)
Debanjan Mahata, Jasper Friedrichs, Rajiv Ratn Shah, Jing Jiang., Did you take the #pill? - Detecting Personal Intake of Medicine from Twitter
IEEE Intelligent Systems on Affective Computing and Sentiment Analysis
(2018)
Yifang Yin, Rajiv Ratn Shah, Guanfeng Wang, Roger Zimmermann, Feature-based Map Matching for Low-Sampling-Rate GPS Trajectories
ACM Transactions on Spatial Algorithms and Systems
(2018)
Omprakash Kaiwartya, Yue Cao, Jaime Lloret, Sushil Kumar, Nauman Aslam, Rupak Kharel, Abdul Hanan Abdullah, and Rajiv Ratn Shah, Geometry-based Localization for GPS Outage in Vehicular Cyber Physical Systems
IEEE Transactions on Vehicular Technology
67 :3800-3812 (2018)
2017
Zhenguang Liu, Zepeng Wang, Luming Zhang, Rajiv Ratn Shah, Yingjie Xia, Yi Yang, and Xuelong Li, FastShrinkage: Perceptually-aware Retargeting Toward Mobile Platforms
ACM Multimedia Conference, United States, October 23-27
:501-509 (2017)
Omprakash Kaiwartya, Abdul Hanan Abdullah, Yue Cao, Jaime Lloret, Sushil Kumar, Rajiv Ratn Shah, Mukesh Prasad, and Shiv Prakash., Virtualization in Wireless Sensor Networks: Fault Tolerant Embedding for Internet of Things
IEEE Internet of Things
5 :571-580 (2017)
Indraprastha Institute of Information Technology, Delhi
About
Contact


Published papers that use ADMB-RE
- Trenkel, V., Skaug, H.J. (2005) Disentangling the effects of trawl efficiency and population abundance on catch data using random effects models. ICES Journal of Marine Science, 62: 1543-1555.
- Kitakado, T., Kitada, S., Kishino, H., Skaug H. (2006) An integrated likelihood method for estimating genetic differentiation between populations. Genetics 173: 2073-2082.
- Skaug, H.J., Fournier D. (2006) Automatic Approximation of the Marginal Likelihood in non-Gaussian Hierarchical Models. Computational Statistics and Data Analysis, 51: 699 - 709.
Updated August 2006
© Otter Research Ltd.


The Grails® framework is the high-productivity toolkit enabling innovators worldwide to build robust, scalable enterprise web applications.
E-COMMERCE PLATFORMS
Today's savvy consumers expect e-commerce platforms to deliver engaging, intuitive shopping experiences and reliable, secure checkout systems. E-commerce merchants require the underlying technology to be robust enough to support their operations and agile enough to quickly and easily accommodate market, product, and traffic expansion.
The open source Grails framework offers all the back-end power necessary to fulfill merchant needs with no vendor lock-in, contracts, license management, or run-time licensing fees. At the same time, it provides developers the flexibility to build modern applications that delight shoppers and support exceptional customer service.
See how a global online ticket reseller expanded into a new market with an e-commerce platform built with the Grails framework.
MANUFACTURING INFORMATION SYSTEMS
Due to the highly distributed nature of some manufacturing systems, application development tools and technology must be flexible and capable of supporting high transaction rates and low response times.
The Grails framework offers a powerful foundation designed to enable development teams to spend less time solving common web problems and more time implementing real business requirements. Additionally, the Grails framework is based on the Java platform and integrates with multiple mainstream technologies, including Groovy, Spring, Hibernate, and Gradle, allowing many companies to seamlessly merge upgrades with existing systems.
GRAILS FRAMEWORK USHERS COMPLEX LEGACY SYSTEM INTO THE FUTURE
A massive, decentralized university database gets a modern upgrade driven by the power and interoperability of the open source Grails framework.
EXCEEDING DEVELOPER PRODUCTIVITY GOALS
When cyber risk-management company, Brinqa, faced a particularly complex development initiative, the company turned to us for our Grails expertise and received the invaluable support and exceptional results we're known for.
THE RIGHT SOFTWARE AND SUPPORT TEAM FOR ENTERPRISE-SCALE APPLICATION DEVELOPMENT
The Grails® framework and core development team deliver the tools and support an enterprise company needs to overhaul its technology stack and enhance operations across the board.


Johnny English
Johnny English is a movie starring Rowan Atkinson, John Malkovich, and Natalie Imbruglia. After a sudden attack on the MI5, Johnny English, Britain's most confident yet unintelligent spy, becomes Britain's only spy.


 This project is so tiny (and useless for some people including me) but after reading about left-pad problem with npm I was like "WOW! even useless stuff can get some attention, let me try something like it but a lil bit better" and here I am releasing this project.
Text-Pad is enable to do 4 types of string padding. to see how to use Text-Pad go to the project github page, to see it in action scroll down to see the examples
Left padding
Right padding
Up padding
Down padding
That's it! thank you for your time mate.