| |
ActiveTcl User Guide
|
|
|
- NAME
- menu, tk_menuSetFocus - Create and manipulate menu widgets
- SYNOPSIS
- menu pathName ?options?
- tk_menuSetFocus pathName
- STANDARD OPTIONS
- -activebackground,
activeBackground, Foreground
- -activeborderwidth,
activeBorderWidth, BorderWidth
- -activeforeground,
activeForeground, Background
- -background or -bg,
background, Background
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor, Cursor
- -disabledforeground,
disabledForeground, DisabledForeground
- -font, font, Font
- -foreground or -fg,
foreground, Foreground
- -relief, relief, Relief
- -takefocus, takeFocus,
TakeFocus
- WIDGET-SPECIFIC OPTIONS
- -postcommand, postCommand,
Command
- -selectcolor, selectColor,
Background
- -tearoff, tearOff,
TearOff
- -tearoffcommand,
tearOffCommand, TearOffCommand
- -title, title,
Title
- -type, type, Type
- INTRODUCTION
- COMMAND ENTRIES
- SEPARATOR ENTRIES
- CHECKBUTTON ENTRIES
- RADIOBUTTON ENTRIES
- CASCADE ENTRIES
- TEAR-OFF ENTRIES
- MENUBARS
- SPECIAL MENUS IN
MENUBARS
- CLONES
- WIDGET COMMAND
- number
- active
- end
- last
- none
- @number
- pattern
- pathName
activate index
- pathName add
type ?option value option value ...?
- -activebackground
value
- -activeforeground
value
- -accelerator
value
- -background
value
- -bitmap
value
- -columnbreak
value
- -command
value
- -compound
value
- -font
value
- -foreground
value
- -hidemargin
value
- -image
value
- -indicatoron
value
- -label
value
- -menu
value
- -offvalue
value
- -onvalue
value
- -selectcolor
value
- -selectimage
value
- -state
value
- -underline
value
- -value
value
- -variable
value
- pathName cget
option
- pathName clone
newPathname ?cloneType?
- pathName
configure ?option? ?value option value
...?
- pathName
delete index1 ?index2?
- pathName
entrycget index option
- pathName
entryconfigure index ?options?
- pathName index
index
- pathName
insert index type ?option value option
value ...?
- pathName
invoke index
- pathName post
x y
- pathName
postcascade index
- pathName type
index
- .VS
- pathName
yposition index
- MENU CONFIGURATIONS
- Pulldown Menus in
Menubar
- Pulldown Menus in Menu
Buttons
- Popup Menus
- Option Menus
- Torn-off
Menus
- DEFAULT BINDINGS
- BUGS
- KEYWORDS
menu, tk_menuSetFocus - Create and manipulate menu widgets
menu pathName ?options?
tk_menuSetFocus pathName
- -activebackground,
activeBackground, Foreground
- -activeborderwidth,
activeBorderWidth, BorderWidth
- -activeforeground,
activeForeground, Background
- -background or -bg,
background, Background
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor,
Cursor
- -disabledforeground,
disabledForeground, DisabledForeground
- -font, font, Font
- -foreground or -fg,
foreground, Foreground
- -relief, relief,
Relief
- -takefocus, takeFocus,
TakeFocus
- Command-Line Name: -postcommand
- Database Name: postCommand
- Database Class: Command
- If this option is specified then it provides a Tcl command to
execute each time the menu is posted. The command is invoked by the
post widget command before posting the menu. Note that in
8.0 on Macintosh and Windows, all commands in a menu systems are
executed before any are posted. This is due to the limitations in
the individual platforms' menu managers.
- Command-Line Name: -selectcolor
- Database Name: selectColor
- Database Class: Background
- For menu entries that are check buttons or radio buttons, this
option specifies the color to display in the indicator when the
check button or radio button is selected.
- Command-Line Name: -tearoff
- Database Name: tearOff
- Database Class: TearOff
- This option must have a proper boolean value, which specifies
whether or not the menu should include a tear-off entry at the top.
If so, it will exist as entry 0 of the menu and the other entries
will number starting at 1. The default menu bindings arrange for
the menu to be torn off when the tear-off entry is invoked.
- Command-Line Name: -tearoffcommand
- Database Name: tearOffCommand
- Database Class: TearOffCommand
- If this option has a non-empty value, then it specifies a Tcl
command to invoke whenever the menu is torn off. The actual command
will consist of the value of this option, followed by a space,
followed by the name of the menu window, followed by a space,
followed by the name of the name of the torn off menu window. For
example, if the option's is ``a b'' and menu .x.y is
torn off to create a new menu .x.tearoff1, then the command
``a b .x.y .x.tearoff1'' will be invoked.
- Command-Line Name: -title
- Database Name: title
- Database Class: Title
- The string will be used to title the window created when this
menu is torn off. If the title is NULL, then the window will have
the title of the menubutton or the text of the cascade item from
which this menu was invoked.
- Command-Line Name: -type
- Database Name: type
- Database Class: Type
- This option can be one of menubar, tearoff, or
normal, and is set when the menu is created. While the
string returned by the configuration database will change if this
option is changed, this does not affect the menu widget's behavior.
This is used by the cloning mechanism and is not normally set
outside of the Tk library.
The menu command creates a new top-level window (given by
the pathName argument) and makes it into a menu widget.
Additional options, described above, may be specified on the
command line or in the option database to configure aspects of the
menu such as its colors and font. The menu command returns
its pathName argument. At the time this command is invoked,
there must not exist a window named pathName, but
pathName's parent must exist.
A menu is a widget that displays a collection of one-line
entries arranged in one or more columns. There exist several
different types of entries, each with different properties. Entries
of different types may be combined in a single menu. Menu entries
are not the same as entry widgets. In fact, menu entries are not
even distinct widgets; the entire menu is one widget.
Menu entries are displayed with up to three separate fields. The
main field is a label in the form of a text string, a bitmap, or an
image, controlled by the -label, -bitmap, and
-image options for the entry. If the -accelerator
option is specified for an entry then a second textual field is
displayed to the right of the label. The accelerator typically
describes a keystroke sequence that may be typed in the application
to cause the same result as invoking the menu entry. The third
field is an indicator. The indicator is present only for
checkbutton or radiobutton entries. It indicates whether the entry
is selected or not, and is displayed to the left of the entry's
string.
In normal use, an entry becomes active (displays itself
differently) whenever the mouse pointer is over the entry. If a
mouse button is released over the entry then the entry is
invoked. The effect of invocation is different for each type
of entry; these effects are described below in the sections on
individual entries.
Entries may be disabled, which causes their labels and
accelerators to be displayed with dimmer colors. The default menu
bindings will not allow a disabled entry to be activated or
invoked. Disabled entries may be re-enabled, at which point it
becomes possible to activate and invoke them again.
Whenever a menu's active entry is changed, a
<<MenuSelect>> virtual event is send to the menu. The
active item can then be queried from the menu, and an action can be
taken, such as setting context-sensitive help text for the
entry.
The most common kind of menu entry is a command entry, which
behaves much like a button widget. When a command entry is invoked,
a Tcl command is executed. The Tcl command is specified with the
-command option.
A separator is an entry that is displayed as a horizontal
dividing line. A separator may not be activated or invoked, and it
has no behavior other than its display appearance.
A checkbutton menu entry behaves much like a checkbutton widget.
When it is invoked it toggles back and forth between the selected
and deselected states. When the entry is selected, a particular
value is stored in a particular global variable (as determined by
the -onvalue and -variable options for the entry);
when the entry is deselected another value (determined by the
-offvalue option) is stored in the global variable. An
indicator box is displayed to the left of the label in a
checkbutton entry. If the entry is selected then the indicator's
center is displayed in the color given by the -selectcolor
option for the entry; otherwise the indicator's center is displayed
in the background color for the menu. If a -command option
is specified for a checkbutton entry, then its value is evaluated
as a Tcl command each time the entry is invoked; this happens after
toggling the entry's selected state.
A radiobutton menu entry behaves much like a radiobutton widget.
Radiobutton entries are organized in groups of which only one entry
may be selected at a time. Whenever a particular entry becomes
selected it stores a particular value into a particular global
variable (as determined by the -value and -variable
options for the entry). This action causes any previously-selected
entry in the same group to deselect itself. Once an entry has
become selected, any change to the entry's associated variable will
cause the entry to deselect itself. Grouping of radiobutton entries
is determined by their associated variables: if two entries have
the same associated variable then they are in the same group. An
indicator diamond is displayed to the left of the label in each
radiobutton entry. If the entry is selected then the indicator's
center is displayed in the color given by the -selectcolor
option for the entry; otherwise the indicator's center is displayed
in the background color for the menu. If a -command option
is specified for a radiobutton entry, then its value is evaluated
as a Tcl command each time the entry is invoked; this happens after
selecting the entry.
A cascade entry is one with an associated menu (determined by
the -menu option). Cascade entries allow the construction of
cascading menus. The postcascade widget command can be used
to post and unpost the associated menu just next to of the cascade
entry. The associated menu must be a child of the menu containing
the cascade entry (this is needed in order for menu traversal to
work correctly).
A cascade entry posts its associated menu by invoking a Tcl
command of the form
menu post x y
where menu is the path name of the associated menu, and
x and y are the root-window coordinates of the
upper-right corner of the cascade entry. On Unix, the lower-level
menu is unposted by executing a Tcl command with the form
menu unpost
where menu is the name of the associated menu. On other
platforms, the platform's native code takes care of unposting the
menu.
If a -command option is specified for a cascade entry
then it is evaluated as a Tcl command whenever the entry is
invoked. This is not supported on Windows.
A tear-off entry appears at the top of the menu if enabled with
the tearOff option. It is not like other menu entries in
that it cannot be created with the add widget command and
cannot be deleted with the delete widget command. When a
tear-off entry is created it appears as a dashed line at the top of
the menu. Under the default bindings, invoking the tear-off entry
causes a torn-off copy to be made of the menu and all of its
submenus.
Any menu can be set as a menubar for a toplevel window (see
toplevel command for
syntax). On the Macintosh, whenever the toplevel is in front, this
menu's cascade items will appear in the menubar across the top of
the main monitor. On Windows and Unix, this menu's items will be
displayed in a menubar accross the top of the window. These menus
will behave according to the interface guidelines of their
platforms. For every menu set as a menubar, a clone menu is made.
See the CLONES section for more information.
As noted, menubars may behave differently on different
platforms. One example of this concerns the handling of
checkbuttons and radiobuttons within the menu. While it is
permitted to put these menu elements on menubars, they may not be
drawn with indicators on some platforms, due to system
restrictions.
Certain menus in a menubar will be treated specially. On the
Macintosh, access to the special Apple and Help menus is provided.
On Windows, access to the Windows System menu in each window is
provided. On X Windows, a special right-justified help menu is
provided. In all cases, these menus must be created with the
command name of the menubar menu concatenated with the special
name. So for a menubar named .menubar, on the Macintosh, the
special menus would be .menubar.apple and .menubar.help; on
Windows, the special menu would be .menubar.system; on X Windows,
the help menu would be .menubar.help.
When Tk sees an Apple menu on the Macintosh, that menu's
contents make up the first items of the Apple menu on the screen
whenever the window containing the menubar is in front. The menu is
the first one that the user sees and has a title which is an Apple
logo. After all of the Tk-defined items, the menu will have a
separator, followed by all of the items in the user's Apple Menu
Items folder. Since the System uses a different menu definition
procedure for the Apple menu than Tk uses for its menus, and the
system APIs do not fully support everything Tk tries to do, the
menu item will only have its text displayed. No font attributes,
images, bitmaps, or colors will be displayed. In addition, a menu
with a tearoff item will have the tearoff item displayed as
"(TearOff)".
When Tk see a Help menu on the Macintosh, the menu's contents
are appended to the standard help menu on the right of the user's
menubar whenever the user's menubar is in front. The first items in
the menu are provided by Apple. Similar to the Apple Menu,
cusomization in this menu is limited to what the system
provides.
When Tk sees a System menu on Windows, its items are appended to
the system menu that the menubar is attached to. This menu has an
icon representing a spacebar, and can be invoked with the mouse or
by typing Alt+Spacebar. Due to limitations in the Windows API, any
font changes, colors, images, bitmaps, or tearoff images will not
appear in the system menu.
When Tk see a Help menu on X Windows, the menu is moved to be
last in the menubar and is right justified.
When a menu is set as a menubar for a toplevel window, or when a
menu is torn off, a clone of the menu is made. This clone is a menu
widget in its own right, but it is a child of the original. Changes
in the configuration of the original are reflected in the clone.
Additionally, any cascades that are pointed to are also cloned so
that menu traversal will work right. Clones are destroyed when
either the tearoff or menubar goes away, or when the original menu
is destroyed.
The menu command creates a new Tcl command whose name is
pathName. This command may be used to invoke various
operations on the widget. It has the following general form:
pathName option ?arg arg ...?
Option and the args determine the exact behavior
of the command.
Many of the widget commands for a menu take as one argument an
indicator of which entry of the menu to operate on. These
indicators are called indexes and may be specified in any of
the following forms:
- number
- Specifies the entry numerically, where 0 corresponds to the
top-most entry of the menu, 1 to the entry below it, and so
on.
- active
- Indicates the entry that is currently active. If no entry is
active then this form is equivalent to none. This form may
not be abbreviated.
- end
- Indicates the bottommost entry in the menu. If there are no
entries in the menu then this form is equivalent to none.
This form may not be abbreviated.
- last
- Same as end.
- none
- Indicates ``no entry at all''; this is used most commonly with
the activate option to deactivate all the entries in the
menu. In most cases the specification of none causes nothing
to happen in the widget command. This form may not be
abbreviated.
- @number
- In this form, number is treated as a y-coordinate in the
menu's window; the entry closest to that y-coordinate is used. For
example, ``@0'' indicates the top-most entry in the
window.
- pattern
- If the index doesn't satisfy one of the above forms then this
form is used. Pattern is pattern-matched against the label
of each entry in the menu, in order from the top down, until a
matching entry is found. The rules of Tcl_StringMatch are used.
The following widget commands are possible for menu widgets:
- pathName activate
index
- Change the state of the entry indicated by index to
active and redisplay it using its active colors. Any
previously-active entry is deactivated. If index is
specified as none, or if the specified entry is disabled,
then the menu ends up with no active entry. Returns an empty
string.
- pathName add type ?option
value option value ...?
- Add a new entry to the bottom of the menu. The new entry's type
is given by type and must be one of cascade,
checkbutton, command, radiobutton, or
separator, or a unique abbreviation of one of the above. If
additional arguments are present, they specify any of the following
options:
- -activebackground value
- Specifies a background color to use for displaying this entry
when it is active. If this option is specified as an empty string
(the default), then the activeBackground option for the
overall menu is used. If the tk_strictMotif variable has
been set to request strict Motif compliance, then this option is
ignored and the -background option is used in its place.
This option is not available for separator or tear-off
entries.
- -activeforeground value
- Specifies a foreground color to use for displaying this entry
when it is active. If this option is specified as an empty string
(the default), then the activeForeground option for the
overall menu is used. This option is not available for separator or
tear-off entries.
- -accelerator value
- Specifies a string to display at the right side of the menu
entry. Normally describes an accelerator keystroke sequence that
may be typed to invoke the same function as the menu entry. This
option is not available for separator or tear-off entries.
- -background value
- Specifies a background color to use for displaying this entry
when it is in the normal state (neither active nor disabled). If
this option is specified as an empty string (the default), then the
background option for the overall menu is used. This option
is not available for separator or tear-off entries.
- -bitmap value
- Specifies a bitmap to display in the menu instead of a textual
label, in any of the forms accepted by Tk_GetBitmap. This option
overrides the -label option but may be reset to an empty
string to enable a textual label to be displayed. If a
-image option has been specified, it overrides
-bitmap. This option is not available for separator or
tear-off entries.
- -columnbreak value
- When this option is zero, the appears below the previous entry.
When this option is one, the menu appears at the top of a new
column in the menu.
- -command value
- Specifies a Tcl command to execute when the menu entry is
invoked. Not available for separator or tear-off entries.
- -compound value
- Specifies whether the menu entry should display both an image
and text, and if so, where the image should be placed relative to
the text. Valid values for this option are bottom,
center, left, none, right and
top. The default value is none, meaning that the
button will display either an image or text, depending on the
values of the -image and -bitmap options.
- -font value
- Specifies the font to use when drawing the label or accelerator
string in this entry. If this option is specified as an empty
string (the default) then the font option for the overall menu is
used. This option is not available for separator or tear-off
entries.
- -foreground value
- Specifies a foreground color to use for displaying this entry
when it is in the normal state (neither active nor disabled). If
this option is specified as an empty string (the default), then the
foreground option for the overall menu is used. This option
is not available for separator or tear-off entries.
- -hidemargin value
- Specifies whether the standard margins should be drawn for this
menu entry. This is useful when creating palette with images in
them, i.e., color palettes, pattern palettes, etc. 1 indicates that
the margin for the entry is hidden; 0 means that the margin is
used.
- -image value
- Specifies an image to display in the menu instead of a text
string or bitmap The image must have been created by some previous
invocation of image create.
This option overrides the -label and -bitmap options
but may be reset to an empty string to enable a textual or bitmap
label to be displayed. This option is not available for separator
or tear-off entries.
- -indicatoron value
- Available only for checkbutton and radiobutton entries.
Value is a boolean that determines whether or not the
indicator should be displayed.
- -label value
- Specifies a string to display as an identifying label in the
menu entry. Not available for separator or tear-off entries.
- -menu value
- Available only for cascade entries. Specifies the path name of
the submenu associated with this entry. The submenu must be a child
of the menu.
- -offvalue value
- Available only for checkbutton entries. Specifies the value to
store in the entry's associated variable when the entry is
deselected.
- -onvalue value
- Available only for checkbutton entries. Specifies the value to
store in the entry's associated variable when the entry is
selected.
- -selectcolor value
- Available only for checkbutton and radiobutton entries.
Specifies the color to display in the indicator when the entry is
selected. If the value is an empty string (the default) then the
selectColor option for the menu determines the indicator
color.
- -selectimage value
- Available only for checkbutton and radiobutton entries.
Specifies an image to display in the entry (in place of the
-image option) when it is selected. Value is the name
of an image, which must have been created by some previous
invocation of image create.
This option is ignored unless the -image option has been
specified.
- -state value
- Specifies one of three states for the entry: normal,
active, or disabled. In normal state the entry is
displayed using the foreground option for the menu and the
background option from the entry or the menu. The active
state is typically used when the pointer is over the entry. In
active state the entry is displayed using the
activeForeground option for the menu along with the
activebackground option from the entry. Disabled state means
that the entry should be insensitive: the default bindings will
refuse to activate or invoke the entry. In this state the entry is
displayed according to the disabledForeground option for the
menu and the background option from the entry. This option
is not available for separator entries.
- -underline value
- Specifies the integer index of a character to underline in the
entry. This option is also queried by the default bindings and used
to implement keyboard traversal. 0 corresponds to the first
character of the text displayed in the entry, 1 to the next
character, and so on. If a bitmap or image is displayed in the
entry then this option is ignored. This option is not available for
separator or tear-off entries.
- -value value
- Available only for radiobutton entries. Specifies the value to
store in the entry's associated variable when the entry is
selected. If an empty string is specified, then the -label
option for the entry as the value to store in the variable.
- -variable value
- Available only for checkbutton and radiobutton entries.
Specifies the name of a global value to set when the entry is
selected. For checkbutton entries the variable is also set when the
entry is deselected. For radiobutton entries, changing the variable
causes the currently-selected entry to deselect itself.
The add widget command returns an empty string.
- pathName cget
option
- Returns the current value of the configuration option given by
option. Option may have any of the values accepted by
the menu command.
- pathName clone newPathname
?cloneType?
- Makes a clone of the current menu named newPathName.
This clone is a menu in its own right, but any changes to the clone
are propogated to the original menu and vice versa.
cloneType can be normal, menubar, or
tearoff. Should not normally be called outside of the Tk
library. See the CLONES section for more information.
- pathName configure ?option?
?value option value ...?
- Query or modify the configuration options of the widget. If no
option is specified, returns a list describing all of the
available options for pathName (see Tk_ConfigureInfo for information
on the format of this list). If option is specified with no
value, then the command returns a list describing the one
named option (this list will be identical to the corresponding
sublist of the value returned if no option is specified). If
one or more option-value pairs are specified, then the
command modifies the given widget option(s) to have the given
value(s); in this case the command returns an empty string.
Option may have any of the values accepted by the
menu command.
- pathName delete index1
?index2?
- Delete all of the menu entries between index1 and
index2 inclusive. If index2 is omitted then it
defaults to index1. Attempts to delete a tear-off menu entry
are ignored (instead, you should change the tearOff option
to remove the tear-off entry).
- pathName entrycget index
option
- Returns the current value of a configuration option for the
entry given by index. Option may have any of the
values accepted by the add widget command.
- pathName entryconfigure
index ?options?
- This command is similar to the configure command, except
that it applies to the options for an individual entry, whereas
configure applies to the options for the menu as a whole.
Options may have any of the values accepted by the
add widget command. If options are specified, options
are modified as indicated in the command and the command returns an
empty string. If no options are specified, returns a list
describing the current options for entry index (see Tk_ConfigureInfo for
information on the format of this list).
- pathName index
index
- Returns the numerical index corresponding to index, or
none if index was specified as none.
- pathName insert index
type ?option value option value ...?
- Same as the add widget command except that it inserts
the new entry just before the entry given by index, instead
of appending to the end of the menu. The type,
option, and value arguments have the same
interpretation as for the add widget command. It is not
possible to insert new menu entries before the tear-off entry, if
the menu has one.
- pathName invoke
index
- Invoke the action of the menu entry. See the sections on the
individual entries above for details on what happens. If the menu
entry is disabled then nothing happens. If the entry has a command
associated with it then the result of that command is returned as
the result of the invoke widget command. Otherwise the
result is an empty string. Note: invoking a menu entry does not
automatically unpost the menu; the default bindings normally take
care of this before invoking the invoke widget command.
- pathName post x y
- Arrange for the menu to be displayed on the screen at the
root-window coordinates given by x and y. These
coordinates are adjusted if necessary to guarantee that the entire
menu is visible on the screen. This command normally returns an
empty string. If the postCommand option has been specified,
then its value is executed as a Tcl script before posting the menu
and the result of that script is returned as the result of the
post widget command. If an error returns while executing the
command, then the error is returned without posting the menu.
- pathName postcascade
index
- Posts the submenu associated with the cascade entry given by
index, and unposts any previously posted submenu. If
index doesn't correspond to a cascade entry, or if
pathName isn't posted, the command has no effect except to
unpost any currently posted submenu.
- pathName type index
- Returns the type of the menu entry given by index. This
is the type argument passed to the add widget command
when the entry was created, such as command or
separator, or tearoff for a tear-off entry.
- .VS
- pathName unpost Unmap the window so that it is no
longer displayed. If a lower-level cascaded menu is posted, unpost
that menu. Returns an empty string. This subcommand does not work
on Windows and the Macintosh, as those platforms have their own way
of unposting menus.
- pathName yposition
index
- Returns a decimal string giving the y-coordinate within the
menu window of the topmost pixel in the entry specified by
index.
The default bindings support four different ways of using
menus:
- Pulldown Menus in Menubar
- This is the most command case. You create a menu widget that
will become the menu bar. You then add cascade entries to this
menu, specifying the pull down menus you wish to use in your menu
bar. You then create all of the pulldowns. Once you have done this,
specify the menu using the -menu option of the toplevel's
widget command. See the toplevel manual entry for
details.
- Pulldown Menus in Menu Buttons
- This is the compatable way to do menu bars. You create one
menubutton widget for each top-level menu, and typically you
arrange a series of menubuttons in a row in a menubar window. You
also create the top-level menus and any cascaded submenus, and tie
them together with -menu options in menubuttons and cascade
menu entries. The top-level menu must be a child of the menubutton,
and each submenu must be a child of the menu that refers to it.
Once you have done this, the default bindings will allow users to
traverse and invoke the tree of menus via its menubutton; see the
menubutton manual
entry for details.
- Popup Menus
- Popup menus typically post in response to a mouse button press
or keystroke. You create the popup menus and any cascaded submenus,
then you call the tk_popup
procedure at the appropriate time to post the top-level menu.
- Option Menus
- An option menu consists of a menubutton with an associated menu
that allows you to select one of several values. The current value
is displayed in the menubutton and is also stored in a global
variable. Use the tk_optionMenu procedure to create option
menubuttons and their menus.
- Torn-off Menus
- You create a torn-off menu by invoking the tear-off entry at
the top of an existing menu. The default bindings will create a new
menu that is a copy of the original menu and leave it permanently
posted as a top-level window. The torn-off menu behaves just the
same as the original menu.
Tk automatically creates class bindings for menus that give them
the following default behavior:
- [1]
- When the mouse enters a menu, the entry underneath the mouse
cursor activates; as the mouse moves around the menu, the active
entry changes to track the mouse.
- [2]
- When the mouse leaves a menu all of the entries in the menu
deactivate, except in the special case where the mouse moves from a
menu to a cascaded submenu.
- [3]
- When a button is released over a menu, the active entry (if
any) is invoked. The menu also unposts unless it is a torn-off
menu.
- [4]
- The Space and Return keys invoke the active entry and unpost
the menu.
- [5]
- If any of the entries in a menu have letters underlined with
with -underline option, then pressing one of the underlined
letters (or its upper-case or lower-case equivalent) invokes that
entry and unposts the menu.
- [6]
- The Escape key aborts a menu selection in progress without
invoking any entry. It also unposts the menu unless it is a
torn-off menu.
- [7]
- The Up and Down keys activate the next higher or lower entry in
the menu. When one end of the menu is reached, the active entry
wraps around to the other end.
- [8]
- The Left key moves to the next menu to the left. If the current
menu is a cascaded submenu, then the submenu is unposted and the
current menu entry becomes the cascade entry in the parent. If the
current menu is a top-level menu posted from a menubutton, then the
current menubutton is unposted and the next menubutton to the left
is posted. Otherwise the key has no effect. The left-right order of
menubuttons is determined by their stacking order: Tk assumes that
the lowest menubutton (which by default is the first one created)
is on the left.
- [9]
- The Right key moves to the next menu to the right. If the
current entry is a cascade entry, then the submenu is posted and
the current menu entry becomes the first entry in the submenu.
Otherwise, if the current menu was posted from a menubutton, then
the current menubutton is unposted and the next menubutton to the
right is posted.
Disabled menu entries are non-responsive: they don't activate
and they ignore mouse button presses and releases.
Several of the bindings make use of the command
tk_menuSetFocus. It saves the current focus and sets the
focus to its pathName argument, which is a menu widget.
The behavior of menus can be changed by defining new bindings
for individual widgets or by redefining the class bindings.
At present it isn't possible to use the option database to
specify values for the options to individual entries.
menu, widget
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.


Detroit officer killed, another wounded in shootout with suspect, police say
by Morgan PhillipsA Detroit police officer was shot and killed and another was wounded on Detroit’s west side Wednesday while they were responding to a home invasion, investigators said.
The officer who was shot in the neck and died was an 18-year veteran of the Detroit Police. The other wounded officer, a three-year veteran on the force, was shot in the leg. He was serious condition but conscious and able to move around.
The shooting unfolded around 7:30 p.m. and the suspect ultimately was arrested.
The two officers were responding to a home invasion in progress. As they arrived, people living in the home ran out frantically, saying an armed suspect was inside. The officers called for backup and more police arrived at the scene, Fox 2 Detroit reported.
AT LEAST 14 OFFICERS SUFFER SMOKE INHALATION, 8 RESIDENTS INJURED IN NEW YORK APARTMENT FIRE
One of the officers was able to return gunfire and strike the suspect, who was transported to the hospital.
Detroit police chief James Craig said the suspect had a "lengthy" criminal history and recently was released from parole. Craig said the suspect was looking for his girlfriend in the home.
CLICK HERE TO GET THE FOX NEWS APP
Craig said the officer who died was "loved," and 275 officers had come out to show their support that night. "Unfortunately I've been to a number of these, but this is probably the one where I've seen this number of officers come out and support."
The officers' names were not yet released, but will be in due time, Craig said.


#assign dinject="active">
DInject is a dependency injection library that uses APT to generate the dependency injection as source code. It does this so that it can be very fast avoiding any use of classpath scanning, reflection and dynamic properties.
DInject is like Dagger but orientated for server side development with similar features to Spring like lifecycle support, configuration beans etc.
Example provider implementation using DatabaseConfig
and DatabaseFactory
.
As long as DatabaseConfig.setRegister(true)
and DatabaseConfig.setDefaultServer(true)
are used in the Guice provider then the Database instance created is also available via the DB
singleton and that means both @Inject
and the active record
style can be used.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 2-3
I can't give this high enough accolades - it's a simply wonderful creation from the humble origins of British cooking. If only you could order it in a restaurant, though.
Equipment and preparation: You will need a solid-based, flameproof roasting tin with a base of 9x6in/23x15cm, 2 in/5cm deep, and a baking tray 14x10in/35x25.5cm.
Preheat the oven to 220C/425F/Gas 7.
Begin by making the batter, and to do this sieve the flour into a large bowl, holding the sieve up high to give the flour a good airing. Now, with the back of a spoon, make a well in the centre, break the egg into it and add some salt and pepper. Now, measure the milk and 2fl oz/55ml water in a measuring jug, then, using an electric hand whisk on a slow speed, begin to whisk the egg into the flour - as you whisk, the flour around the edges will slowly be incorporated. Then add the liquid gradually, stopping to scrape the flour into the mixture. Whisk until the batter is smooth. Now the batter is ready for use, and although it's been rumoured that batter left to stand is better, I have never found this, so just make it whenever it's convenient.
Now place the sliced onions in a bowl, add one teaspoon of the oil and the sugar and toss the onions around to get the lightest coating, then spread them on the baking tray. Next arrange the sausages in the roasting tin, then place the onions on a high shelf in the oven, with the sausages on a lower shelf, and set a timer for 10 minutes. When the timer goes off, remove the sausages from the oven but leave the onions in for a further 4-5 minutes - they need to be nicely blackened round the edges. When they are ready, remove them and leave to one side.
Now place the roasting tin containing the sausages over direct heat turned to medium and, if the sausages haven't released much fat, add the tablespoon of oil. When the tin is really hot and the oil is beginning to shimmer - it must be searing hot - quickly pour the batter in all around the sausages. Immediately return the roasting tin to the oven, this time on the highest shelf, and cook the whole thing for 30 minutes.
Now for the gravy. First add the Worcestershire sauce and mustard powder to the stock, then add the onions from the baking tray to a medium-sized pan. Now add the second teaspoon of oil, then, using a wooden spoon, stir in the plain flour. Stir all this together over a medium heat and then switch to a whisk, then gradually add the stock to the pan, whisking all the time, until it's all in. Then bring it up to simmering point and gently simmer for 5 minutes. Taste to check the seasoning, then pour into a warmed serving jug.
When the toad is ready, it should be puffed brown and crisp and the centre should look cooked and not too squidgy. Serve it immediately with the gravy, and it's absolutely wonderful with mashed potato.


Maven is a Java-based build tool, enabling developers to compile, test, package and deploy software. Although superficially similar to other build tools like Ant, Maven eliminates much of the common boilerplate code that exists in most Ant scripts, and adds additional functionality above and beyond Ant - in particular, Maven adds sophisticated declarative dependency management (similar to Ivy). As long as you follow certain conventions in how your project is structured, Maven accomplishes all of this with minimal configuration.
Maven is freely available at http://maven.apache.org. On Windows, simply download the latest binaries and unzip into your directory of choice. On Linux or Mac OS X, you may choose to simply download and untar, or else use a package manager such as apt-get or brew. After you've installed Maven, check that it's working:
We'll start by creating the sample Java project shown in Maven in 5 Minutes:
...and so on. As this is the first time we've ever run Maven, it must download a lot of dependencies, so let's take a break from the endless stream of download messages. Go get a cup of coffee, and we'll pick up again right about... here...
As Yogi Berra once said, "you can observe a lot just by watching." In executing this one command, we've actually learned quite a bit about how Maven works:
Running the archetype:generate goal with our input parameters generated an archetypal Java project:
This is the standard project structure for Maven projects. You can override where these things are actually located by overriding defaults in the project descriptor, otherwise known as the Project Object Model (POM) (however, you'll find that it's much easier to use Maven when you accept how it wants to structure your project). Note that Maven generated a POM (appropriately named pom.xml) in the root of our project directory tree.
The POM uniquely identifies a project to Maven, describes its contents and dependencies, and specifies how it should be built, tested, packaged and deployed. A complicated project will understandably have a more complicated POM file, but let's examine what we have thus far:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://dev.the-super-test-app.com</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
OK... so what are we looking at?
| modelVersion | Specifies the version of the Maven POM specification to which this POM file conforms |
| groupId artifactId version |
Together provide a globally unique identifier for this project in the world of Maven (these are sometimes called the coordinates of the project) |
| name | Enables us to give the project a more descriptiive name than what we specify for the artifactId |
| packaging | Tells Maven how we would like our project to be packaged - built-in options include pom, jar, maven-plugin, ejb, war, ear, rar, par (the default is jar) |
| url | The home page for the project |
| dependencies | Specifies the Maven coordinates for any projects on which this project depends |
Using the information in the POM, Maven determines how to build the project. As a concrete example, in order to make our build artifacts more platform-independent, let's add a property entry to our POM to tell Maven to use UTF-8 encoding:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
Any Maven plugin which generates text files will now output UTF-8 encoded text.
Maven defines a default lifecycle for projects (from "Introduction to the [Maven] Build Cycle"):
| 1 | validate | Validates the project is correct and all necessary information is available |
| 2 | compile | Compiles the source code of the project |
| 3 | test | Tests the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed |
| 4 | package | Takes the compiled code and package it in its distributable format, such as a JAR. |
| 5 | integration-test | Processes and deploys the package if necessary into an environment where integration tests can be run |
| 6 | verify | Runs any checks to verify the package is valid and meets quality criteria |
| 7 | install | Installs the package into the local repository, for use as a dependency in other projects locally |
| 8 | deploy | When run in an integration or release environment, this typically copies the final package to the remote repository for sharing with other developers and projects |
As a sanity check for our newly-generated project, let's tell Maven to package our project, and observe the relationship between the default lifecycle and what's specified in our POM file. Since this is the first time we've packaged anything with Maven, we'll once again download a lot of dependencies, so in the interest of brevity, we'll actually run our package goal twice (cleaning up after the first run), and only examine the output of the second run:
We see that Maven executed those portions of the default lifecycle which were applicable to our project. Note that we do not have to run through the entire lifecycle every time - we can choose other goals. Some goals may be utility goals completely outside of the normal lifecycle, or sometimes we may choose to run through only part of the lifecycle:
Our generated POM file included a single dependency: JUnit 3.8.1. Although we ignored it above, if you happened to look closely at the output when you ran mvn package for the very first time, you may have noticed this output:
Maven did this because the dependencies declaration in our POM file told Maven that we needed JUnit 3.8.1, and we didn't already have it in our local repository:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
Furthermore, if JUnit itself had required any dependencies that we didn't already have in our local repository, Maven would have fetched those as well, and so on. But how did Maven know where to look for these dependencies? Maven will first look for dependencies in the local repository, which by default is located in ~/.m2/repository (as with most things in Maven, this can be customized - the location of the local repository can be specified in ~/.m2/settings.xml). The local repository contains the actual library files (jar files, usually) as well as POM files for those libraries:
If Maven can't find a required dependency in the local repository, then by default it will then look in the Maven central repository, which contains virtually every third-party Maven plugin that you might want. The central repository is at http://repo1.maven.org/maven2, which is defined in the Super POM, but can be overridden if necessary - either in your project's POM file, or else in your local settings.xml file. The central repository is helpful when working on an open source project, but when working in a corporate environment, you'll typically use an internal repository (such as Artifactory or Nexus), specified in the project POM file:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <repositories> <repository> <id>my-internal-site</id> <url>http://myserver/repo</url> </repository> </repositories> </project>
An internal repository will contain other internal projects on which your project depends, and can also mirror external third-party dependencies.
We usually require precise control over our dependency versions, but sometimes it's not necessary. Maven allows us to specify a version range, which can even be open-ended. For example, if we wanted to use JUnit version 3.8.1 or higher, in our POM file we could specify:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>[3.8.1,)</version> <scope>test</scope> </dependency> </dependencies> </project>
Note that this will download all of the versions of JUnit between 3.8.1 and the most current, but will then use the most current version.
What we've seen thus far will service the needs of most Java projects. But sometimes we'll need more than what a standard Maven installation provides; a good example would be the generation of any platform-specific configuration files. To accomplish this, within our POM we must specify (and configure) a plugin which can accomplish this goal. For example, let's add the Jacoco Maven plugin to tell us what kind of code coverage we're getting from our unit testing:
<?xml version="1.0"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>[3.8.1,)</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version><IP_ADDRESS>306030806</version> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
Within the build element, we can bind the execution of a plugin goal to a particular phase of the build lifecycle. Note that we see one execution that is not explicitly bound to a phase; in this case the execution is bound to its default phase (this makes sense; Jacoco can only instrument the compiled classes at a very particular spot in the build lifecycle, and thus isn't meaningfully configurable).
There can also exist a reporting element within the POM, which is very similar to the build element, but is used for goals which are run within the site phase, which generates project reports and documentation. Whether plugin configuration is defined in the build or the reporting element simply depends on the nature of the plugin.
To see Jacoco in action, we'll first clean out any previously generated files and then package our app (note that we can specify multiple Maven goals, which are satisfied in order). If this is the first time you've used the Jacoco plugin, Maven will download it, along with its dependencies. What we're especially interested in here, however, are the additions to the build cycle:
We see that by simply including the Jacoco Maven plugin as part of the build, and binding certain goals to certain execution phases (while relying on the default phases for other Jacoco goals), the Jacoco plugin instrumented our code, gathered coverage metrics during test execution, and generated an HTML report of our unit test code coverage:
...and opening index.html in a browser, we see our coverage report:
(Note that this report is expected, since the JUnit test generated by Maven isn't yet actually doing anything.)
We probably don't need code coverage every time we build. By wrapping our Jacoco configuration within a profile, we will only generate code coverage when we explicitly include that profile:
<?xml version="1.0"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bitbakery.app</groupId> <artifactId>test-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>test-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>[3.8.1,)</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>with-jacoco</id> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version><IP_ADDRESS>306030806</version> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>
...and now to generate code coverage, we simply include the profile:
...and so on - the same output that we saw previously, before we added our profile. If we were to now run mvn clean package without including our profile, Jacoco would be ignored.
Complicated projects will sometimes require complicated build steps which do not fit neatly into Maven's worldview. To handle such cases, we can write our own Maven plugins, and then use them just as we would use any other Maven plugin. To get started, we'll navigate back to the parent directory of test-app, and then use Maven to create an archetypal Maven plugin project:
...which creates a skeleton Java project for developing a Maven plugin:
Looking at MyMojo.java, we see the basic elements of the Maven plugin API:
package com.bitbakery.plugin; import org.apache.maven.plugin.*; import org.apache.maven.plugins.annotations.*; import java.io.*; /** * Goal which touches a timestamp file. */ @Mojo( name = "touch", defaultPhase = LifecyclePhase.PROCESS_SOURCES ) public class MyMojo extends AbstractMojo { @Parameter(defaultValue = "${project.build.directory}", property = "outputDir", required = true) private File outputDirectory; public void execute() throws MojoExecutionException { File f = outputDirectory; if (!f.exists()) { f.mkdirs(); } File touch = new File(f, "touch.txt"); FileWriter w = null; try { w = new FileWriter(touch); w.write("touch.txt"); } catch (IOException e) { throw new MojoExecutionException( "Error creating file " + touch, e ); } finally { if ( w != null ) { try { w.close(); } catch ( IOException e ) { // ignore } } } } }
Maven plugin development is a topic unto itself. More information can be found at http://maven.apache.org/plugin-developers/index.html
If we're behind a proxy server, then we'll need to configure Maven accordingly in order to download dependencies from a remote repository:
Enter the following (using your proper URL, port, username and password, of course) and save:
<settings> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts> </proxy> </proxies> </settings>
See http://maven.apache.org/guides/mini/guide-proxies.html for more information.
An additional gotcha - beware of differences between what you expect your version of Java to be, and what Maven is using!


First Gen Pokemon Chart
Image
Name
Type
Evolves Into
Bulbasaur
Grass/Poison
Ivysaur
Charmander
Fire
Charmeleon
Squirtle
Water
Wartartle


Before Change
LANGUAGE_CODES = list(sorted(DEFAULT_LANGUAGE_MODELS.keys()))
CORPUS_MINI = {
"ny": "I live in New York.",
"bln": "I am in Berlin, but my flat is in Munich.",
"compounds": "US-Student is reading an e-mail on eCommerce with CamelCase.",
"empty": ""
}
@pytest.fixture(scope="module", params=LANGUAGE_CODES)
def nlp_all(request):
After Change
LANGUAGE_CODES = list(sorted(DEFAULT_LANGUAGE_MODELS.keys()))
CORPUS_MINI = OrderedDict([
("ny", "I live in New York."),
("bln", "I am in Berlin, but my flat is in Munich."),
("compounds", "US-Student is reading an e-mail on eCommerce with CamelCase."),
("empty", "")
])
@pytest.fixture(scope="module", params=LANGUAGE_CODES)
def nlp_all(request):


File Navigator Guide (Simple)
This guide walks you through building a simple file navigation widget. It takes about 25 minutes to complete. It was written with CanJS 3.10. Check out the File Navigator Guide (Advanced) for an example that makes AJAX requests for its data and uses can-component.
The final widget looks like:
Finished version of the CanJS File Navigator Guide (Simple) on jsbin.com Open in JSFiddle
Click ROOT/
to see its files and folders.
Note: If you don’t see any files show up, run the JS Bin again. This JS Bin uses randomly generated files, so it’s possible nothing shows up.
Start this tutorial by cloning the following JS Bin:
Starter version of the CanJS File Navigator Guide (Simple) on jsbin.com Open in JSFiddle
This JS Bin has initial prototype HTML and CSS which is useful for getting the application to look right.
The following sections are broken down into:
- Problem - A description of what the section is trying to accomplish.
- Things to know - Information about CanJS that is useful for solving the problem.
- Solution - The solution to the problem.
- Test it (uncommon) - How to make sure the solution works.
Understand the data
There is a randomly generated rootEntityData
variable that contains a nested structure of
folders and files. It looks like:
{
"id": "0",
"name": "ROOT/",
"hasChildren": true,
"type": "folder",
"children": [
{
"id": "1", "name": "File 1",
"parentId": "0",
"type": "file",
"hasChildren": false
},
{
"id": "2", "name": "File 2",
"parentId": "0",
"type": "file",
"hasChildren": false
},
{
"id": "3", "name": "Folder 3",
"parentId": "0",
"type": "folder",
"hasChildren": true,
"children": [
{
"id": "4", "name": "File 4",
"parentId": "3",
"type": "file",
"hasChildren": false
},
{
"id": "5", "name": "File 5",
"parentId": "3",
"type": "file",
"hasChildren": false
},
{
"id": "6", "name": "File 6",
"parentId": "3",
"type": "file",
"hasChildren": false
},
{
"id": "7", "name": "File 7",
"parentId": "3",
"type": "file",
"hasChildren": false
},
{
"id": "8", "name": "Folder 8",
"parentId": "3",
"type": "folder",
"hasChildren": false,
"children": []
}
]
},
{
"id": "9", "name": "File 9",
"parentId": "0",
"type": "file",
"hasChildren": false
}
]
}
Notice that entities have the following properties:
- id - a unique id
- name - the name of the file or folder
- type - if this entity a "file" or "folder"
- hasChildren - if this entity has children
- children - An array of the child file and folder entities for this folder
Render the root folder and its contents
The problem
Let’s render rootEntityData
in the page with its immediate children.
What you need to know
CanJS uses can-stache to render data in a template and keep it updated. Templates can be authored in

A can-stache template uses {{key}} magic tags to insert data into the HTML output like:

Load a template from a

Update the JavaScript tab to:
var template = can.stache.from("entities-template");
var frag = template(rootEntityData);
document.body.appendChild( frag );
Render all the files and folders
The Problem
Now let’s render all of the files and folders! This means we want to render the files and folders recursively. Every time we find a folder, we need to render its contents.
Things to know
A template can call out to another registered partial template with with {{>PARTIAL_NAME}} like the following:
{{>PARTIAL_NAME}}
You can register partial templates with can.stache.registerPartial like the following:
var template = can.stache.from("TEMPLATE_ID"); can.stache.registerPartial("PARTIAL_NAME", template);
The Solution
Update the HTML tab to:
- Call to an
{{>entities}}
partial.

Update the JavaScript tab to:
- Register the
entities-template
as a partial:
var template = can.stache.from("entities-template");
can.stache.registerPartial("entities", template);
var frag = template(rootEntityData);
document.body.appendChild( frag );
Make the data observable
The problem
For rich behavior, we need to convert the raw JS data into typed observable data. When we change the data, the UI will automatically change.
Things to know
DefineMap.extend allows you to define a type by defining the type’s properties and the properties’ types like:
Person = can.DefineMap.extend("Person", { name: "string", age: "number" })
This lets you create instances of that type and listen to changes like:
var person = new Person({ name: "Justin", age: 34 }); person.on("name", function(ev, newName) { console.log("person name changed to ", newName); }); person.name = "Kevin" //-> logs "entity name changed to Kevin"
can.DefineMap
supports an Array shorthand that allows one to specify a can.DefineList of typed instances like:Person = can.DefineMap.extend("Person", { name: "string", age: "number", addresses: [Address] });
However, if
Address
wasn’t immediately available, you could do the same thing like:Person = can.DefineMap.extend("Person", { name: "string", age: "number", addresses: [{ type: function(rawData) { return new Address(rawData); } }] });
The solution
Update the JavaScript tab to:
- Define an
Entity
type and the type of its properties. - Create an instance of the
Entity
type calledrootEntity
- Use
rootEntity
to render the template
var Entity = can.DefineMap.extend("Entity", {
id: "string",
name: "string",
parentId: "string",
hasChildren: "boolean",
type: "string",
children: [{
type: function(entity) {
return new Entity(entity)
}
}]
});
var rootEntity = new Entity(rootEntityData);
var template = can.stache.from("entities-template");
can.stache.registerPartial("entities", template);
var frag = template(rootEntity);
document.body.appendChild( frag );
Test it
Run the following the Console tab:
rootEntity.name= "Something New";
rootEntity.children.pop();
You should see the page change automatically.
Make the folders open and close
The problem
We want to be able to toggle if a folder is open or closed.
Things to know
can.DefineMap
can specify a default value and a type:var Person = can.DefineMap.extend({ address: Address, age: {value: 33, type: "number"} });
can.DefineMap
can also have methods:var Person = can.DefineMap.extend({ address: Address, age: {value: 33, type: "number"}, birthday: function(){ this.age++; } });
Use {{#if(value)}} to do
if/else
branching incan-stache
.Use on:EVENT to listen to an event on an element and call a method in
can-stache
. For example, the following callsdoSomething()
when the

is clicked.
 ...

The solution
Update the JavaScript tab to:
- Add an
isOpen
property toEntity
. - Add a
toggleOpen
method toEntity
.
var Entity = can.DefineMap.extend("Entity", {
id: "string",
name: "string",
parentId: "string",
hasChildren: "boolean",
type: "string",
children: [{
type: function(entity){
return new Entity(entity)
}
}],
isOpen: {type: "boolean", value: false},
toggleOpen: function(){
this.isOpen = !this.isOpen;
}
});
var rootEntity = new Entity(rootEntityData);
var template = can.stache.from("entities-template");
can.stache.registerPartial("entities", template);
var frag = template(rootEntity);
document.body.appendChild( frag );
Update the HTML tab to:
- Call
toggleOpen()
when clicked. - Only show the children
{{#if(isOpen)}}
is true.

Result
When complete, you should have a working file-navigation widget like the following JS Bin:
Finished version of the CanJS File Navigator Guide (Simple) on jsbin.com Open in JSFiddle


Developed a basic structure-from-motion framework. For pairwise motion estimation and triangulation, OpenCV was used. To perform global bundle-adjustment, Ceres was used. Generates a sparse point cloud representing scene geometry.
codeDeveloped a HDR image generator that uses a set of SDR images captured using different shutter speeds. Essentially, the Camera Response Function is recovered which maps pixel values to exposure values. Using the CRF, a the radiance values are tone-mapped to generate an HDR image. The algorithm was based on Debevec, et. al. 1997.
code reportUsed a canonical actor-critic method - Deep Deterministic Policy Gradients to train an agent to follow lanes. The training was done in a simulation environment using the Carla Simulator. The work was primarily motivated by Kendall et. al. Major changes were done to shape the reward signal. Also, an attempt was made to incorporate the partial observability of the environment by using recurrent neural networks.
codereportAdded support for visualizing the decisions made by the Dronet neural network by publishing activation maps. The activation maps signify the regions of an image which contribute most to the decision made the neural network. It was based on Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization. The project was to determine how well Dronet generalises for a ground vehicle. The experiments were performed on a Polaris GEM e6.
codeThe aim of this project is to derive a driving policy directly from visual space. Currently, a segmentation network has been trained on a subset of the BDD100K dataset. The segmentation network uses a SqueezeNet backbone.
code"Face Trigger” (FT) is a framework for building applications that rely on face-recognition. It enables the development of an end-to-end pipeline for training a machine learning classifier for the purposes of identifying people’s faces. The model was based on a deep neural network inspired from FaceNet. The project was implemented as a python package, to be used to develop other applications.  Many models were developed including classical methods like SVM and various neural network architectures like CNN, LSTM, CNN-LSTM, ConvLSTM. The dataset used was the UCI HAR dataset. The trained model was deployed in an Android application.
codeCreated a ROS node for straeming sensor data from Perceptin's Dragonfly computer vision module. Dragonfly vision module has 2 stereo pairs (front + back) and an IMU unit, all of which are hardware synchronized.
codeThe aim of the project was to generate a path for a UAV to traverse in order to find a missing person. As input, a probability density map was given which indicated the probability of finding the missing person in one of the grid locations. The path was generated such that the UAV prioritises locations that have a high probability density. A meta-heuristic algorithm was applied to generate the path, called Local Hill Climbing.
code video reportThe aim of the project was to assign missions to pilots, respecting certain eligibility criteria. As input, 3 lists were provided. The first list included the pilots and the corresponding Aerial vehicles they can fly. The second list contained UAVs and the mission types they could support along with a quantity of each UAV type. The third and final list had bunch of missions along with their types. The mission planner had to assign each pilot to a UAV and a corresponding mission. All constraints had to be respected.
codeReproduced the Virtual Program Counter indirect branch predictor. VPC treats each indirect branch as multiple virtual conditional branches. As a result of which, the existing conditional branch prediction hardware can be used. A conditional branch prediction algorithm was also reproduced based on Merging Path and GShare Indexing Perceptron branch prediction.
code reportA cache reuse and bypass predictor for LLC using the perceptron learning algorithm. Based on Teran et al., MICRO 2016.
code reportBlyton is a unique book recommender system to generate recommendations for readers based on their guided reading levels.
code documentation videoThe project aimed to benchmark Dronet's performance on Carla's CoRL 2017 benchmark suite. Dronet is a neural network that takes as input monocular images and provides 2 outputs: probability of collision aand steering angle. Unfortunately, the pre-trained network did not perform well as it was trained on real-life images. The network needs to be trained on synthetic images or some form of domain adaptation needs to be applied.
codeThe project was to predict the yaw angles from raw sensor readings from an IMU. The aim of the project was to reverse engineer the Kalman filters used in expensive IMUs, so that a function could be learnt from sensor readings to orientation. The data was collected on a VectorNav IMU (VN-200) and a cheaper PixHawk IMU. The function approximator used was a recurrent neural network.
codeTAMU Career Closet is an inventory management system built on Ruby on Rails and Angular 2. It helps administrators at TAMU Career Closet manage their inventory. For accessing the demo please enter the following credentials:


| Package | Description |
|---|---|
| com.ram.kainterview |
Package for the infection implementations for the Khan Academy interview
|
| com.ram.kainterview.user |
Package for the users in the infection implementations for the Khan Academy
interview
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.String,User> |
InfectionControllerImpl.users
Map of all id's to users in the user base
|
| Modifier and Type | Method and Description |
|---|---|
private void |
StrictLimitedInfectionTest.addCoach(User student,
User coach)
Adds a coach to the given student
|
private void |
StrictLimitedInfectionTest.addStudent(User coach,
User student)
Adds a student to the given coach
|
| Modifier and Type | Method and Description |
|---|---|
private void |
TotalInfectionTest.checkUsers(java.util.List<User> users)
Checks the users' versions using the classInv() method (accesses the
private method using reflection)
|
| Constructor and Description |
|---|
InfectionControllerImpl(java.util.List<User> users)
Constructs a controller with the given user base
|
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<User> |
User.coaches
Contains all of the coaches of this user.
|
private java.util.List<User> |
User.students
Contains all the students of this user.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<User> |
User.coaches()
Gets a read-only version of the list of coaches
|
static java.util.List<User> |
UserGeneratorTest.generateSpecificUsers()
Generates a specific user graph
coach1 coach2
student1 student2 student3 student4
|
static java.util.List<User> |
UserGenerator.generateUsers(int min,
int maxStudents,
int levels)
Generates a random artificial user base given the specifications such as
the number of top-level users
|
java.util.List<User> |
User.students()
Gets a read-only version of the list of students
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
User.addCoach(User coach)
Adds a coach to this user
|
protected void |
User.addStudent(User student)
Adds a student to this user
|
private void |
UserGeneratorTest.checkStudents(User user,
int maxStudents,
int levels)
Checks maximum student size restriction and ensures no duplication
|
private static void |
UserGenerator.populateUser(java.util.List<User> users,
User user,
int maxStudents,
int levels)
Populates the students of this user recursively
|
| Modifier and Type | Method and Description |
|---|---|
private int |
User.graphSize(java.util.Map<java.lang.String,User> users)
Determines the size of the graph of the users connected to this user as
coaches or students with a depth-first traversal in each direction (both
to coaches and to students)
|
private static void |
UserGenerator.populateUser(java.util.List<User> users,
User user,
int maxStudents,
int levels)
Populates the students of this user recursively
|


We were also determined to build the conferences and business in line with the following principles:
Content is always independent of sales. In other words, sponsors are not entitled to speak by virtue sponsoring at the conference. Individuals are invited to propose a talk. No one is "invited" to "speak" (neither is proposing a guarantee to speak). All proposers have to go through rigorous scrutiny in order to make it on the stage.
Speakers have to speak about open source technology and ensure there is a concrete takeaway for the audience in terms of insight or practice. Finally, participants are the primary customers. Sponsors are secondary. Consequently, participants' privacy is key for the conference's goodwill. Their data will not be shared without their permission. Five years down and we have been agile and slow in various aspects of organizing conferences and building our business.
In this talk, we will share what it takes to build a startup in an agile and expedient manner around assets such as goodwill, trust and networks. Goodwill, trust and networks are critical for any startup's success. The key takeaway for the audience is to identify their strategies and practices for building these assets and build a business or community or both in an agile manner.


Windows 10 で修正ツールを使用する
Windows 10対応の Fix It ツールが大量に置いてあるページ ぼくんちのtv 別館
Microsoft Fix It Center 無料 ダウンロード
Download Windows Repair All In One
Office 2016 Fix It Tool Where Is It Solved Windows 10 Forums
How To Repair Windows 10 With An In Place Upgrade Wintips Org Windows Tips How Tos
Cant Download Apps From Microsoft Store Install Button Grayed Out Lets Fix It
How To Download And Create A Windows 10 Installation Dvd Repair Windows
Exe Fixer Tool Treemobi
3 Ways To Fix Windows 10 Download Error 0xc1900223 In 2020 Windows 10 Download Content Delivery Network Updating Windows
Download This Windows 10 Emergency Patch Asap To Fix Printer Blue Screen Crashing Hothardware
How To Fix Blue Screen Of Death After Installing Windows 10 October Patch Tuesday Update Windows Central
Microsoft Fix It For Windows 8 1 Up And Ready
10 Free Tools To Repair Windows 10
How To Fix The Windows Store Download Issue Error Message 0x803f7003 Shacknews
Fix Windows Update Errors Via Dism Or System Update Readiness Tool Windows Server Microsoft Docs
How To Fix 0x80190001 Windows Update Error On Windows 10 Fix It Windows Windows 10
Fix Windows 10 7 8 1 Update Errors Using Official Tool How To Download
How To Fix 0x803f8001 Windows 10 Store App Download Error It Pro
Fix Microsoft Store App Stuck On Starting Download
Fix Can T Download Or Install Roblox On Windows 10 Windows Bulletin Tutorials
5 Best Windows 10 Boot Repair Tools To Rescue Your Pc
Amazon Com Microsoft Windows 10 Pro Download Software
How To Fix The Downloads Folder Layout On Windows 10 1903
3 Ways To Fix Windows 10 Download Error 0xc1900223 Windows 10 Download Updating Windows Content Delivery Network
Fixing 0x80244022 Error Windows 10 Preview Update Fails To Download Windows Bulletin Tutorials
Fix It Center 1 0 0080 用 Windows ダウンロード
Fix Windows Update Error 0x8007010b
How Do I Fix This Just Download The Game Windows 10 Gtx 1080 2700x Civ5
Windows Update Stuck On 100 Showing Pending Download Microsoft Community
I M Trying To Download Windows 10 On My Mac But It Says Windows 10 Iso Is Not Recognized Anyone Know How To Fix This Bootcamp


Setter for vector[3]
Getter for vector[0]
Setter for vector[0]
Getter for vector[1]
Setter for vector[1]
Getter for vector[2]
Setter for vector[2]
Returns the absolute value of each element of current array.
Returns the arccosine of each element of current array.
Returns the hyperbolic arccosine of each element of current array.
Adds x
multiplied by alpha
to the current array.
Determines the angle between the current vector and vector
.
Returns the arcsine of each element of current array.
Returns the hyperbolic arcsine of each element of current array.
Returns the arctangent of each element of current array.
Returns the hyperbolic arctangent of each element of current array.
Returns the cube root of each element of current array.
Returns the smallest integer greater than or equal to each element of current array.
Check if index
is within the bound for current vector.
Makes a copy of the class and underlying data
Returns the cosine of each element of current array.
Returns the hyperbolic cosine of each element of current array.
Performs dot multiplication
Functional version of for-looping the vector, is equivalent
to Array.prototype.forEach
.
Checks if current array and x
are equal.
Asserts if current array and x
have the same shape
Asserts if current array and x
have the same length
Returns e^x of each element of current array, where x is the argument, and e is Euler's constant (2.718…), the base of the natural logarithm.
Returns subtracting 1 from exp(x) of each element of current array.
Fills the array with a scalar value, takes an optional type
argument
which should be an instance of TypedArray
.
Returns the largest integer less than or equal to a number of each element of current array.
Returns the nearest single precision float representation of each element of current array.
Gets the element at index
from current vector.
Returns the natural logarithm (log_e, also ln) of each element of current array.
Returns the base 10 logarithm of each element of current array.
Returns the natural logarithm (log_e, also ln) of 1 + x for each element of current array.
Returns the base 2 logarithm of each element of current array.
Calculates the magnitude of an array (also called L2 norm or Euclidean length).
Maps a function callback
to all elements of current vector.
Gets the maximum value (largest) element of current array.
Gets the minimum value (smallest) element of current array.
Normalizes current vector.
Returns each element of current array to the exponent power, that is, element^exponent.
Hadamard product
Pushes a new value
into current vector.
Equivalent to TypedArray.prototype.reduce
.
Reshapes the array
Returns the value of each element of current array rounded to the nearest integer.
Multiplies all elements of current array with a specified scalar
.
Sets the element at index
to value
.
Returns the sign of each element of current array, indicating whether it is positive, negative or zero.
Returns the sine of each element of current array.
Returns the hyperbolic sine of each element of current array.
Returns the positive square root of each element of current array.
Subtracts x
to the current array.
Returns the tangent of each element of current array.
Returns the hyperbolic tangent of each element of current array.
Converts current vector into a JavaScript array.
Converts current vector into a readable formatted string.
Returns the integer part of each element of current array, removing any fractional digits.
Static method. Creates a vector containing optional 'value' (default 0) of count
size, takes
an optional type
argument which should be an instance of TypedArray
.
Static method. Creates a vector containing ones (1
) of count
size, takes
an optional type
argument which should be an instance of TypedArray
.
Static method. Creates a vector of count
elements containing random
values according to a uniform distribution bounded by min
and max
,
takes an optional type
argument which should be an instance of TypedArray
.
Static method. Creates a vector containing a range (can be either ascending or descending)
of numbers specified by the arguments provided (e.g. Vector.range(0, .5, 2)
gives a vector containing all numbers in the interval [0, 2)
separated by
steps of 0.5
), takes an optional type
argument which should be an instance of
TypedArray
.
Static method. Creates a vector containing zeros (0
) of count
size, takes
an optional type
argument which should be an instance of TypedArray
.
Generated using TypeDoc
Getter for vector[3]


Professionalism
Sounding my own horn is completely out of character for me, so I prefer to let my colleagues, clients, and mentors do the talking. I instinctively fall into the practice of confident humility for my style of leadership. If this style aligns with the way you like to work, get in touch with me, and let's chat over a coffee or a beer.
Dedication
Spending time with family is very important to me. Whether it is watching my kids compete in sports, taking vacations together, or just enjoying time on the lake, family is where it is at.
Engagement
To stay engaged on projects and avoid burnout, I turn to my love of everything automotive and nautical. From racing my supercharged Ford Mustang GT or my modified Mazda Miata to working on and enjoying my boat, there is nothing better than engaging gears.


This project was built as part of a Lambda School Build Week. Four students and one Project Lead collaborated together using Github, Slack and Trello to complete this project over the course of one week.
Click the Sign Up button above to be taken to the React web app. This app allows for onboarding of a variety of user types, and displays a unique homepage to each type of user (admins, volunteers and students).
Additionally, the React app allows admins to create a to do list for the volunteers to complete, which then gets displayed on the volunteers’ homepage.
John designed the backend using Node, building out endpoints for the login system and developing data models to communicate to the React App.
Mark architected the frontend React app, pulling in data from the backend and setting up the login page to handle tokens.
Justin managed the front end styling of the React app, built the login pages, and utilized React State Management and animation/event libraries.
Phil built this 2-page marketing site, including coming up with the design and implementing it using semantic HTML and the LESS CSS preprocessor.
Emily managed the team, holding daily standup meetings and ensuring team members were clear on their responsibilities and made proper use of Github and Trello.


*** User 2017-05-05 21:48:15.156 ***
21:48:15.156 [info] Disabling blocking sync...
*** User 2017-05-05 21:48:15.160 ***
21:48:15.160 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-1@MacBook-Pro-de-Anne-France'
*** User 2017-05-05 21:48:16.692 ***
21:48:16.692 [info] Enabling membership...
*** User 2017-05-05 21:48:16.694 ***
21:48:16.694 [info] Disabling blocking sync...
*** User 2017-05-05 21:48:16.700 ***
21:48:16.700 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-2@MacBook-Pro-de-Anne-France'
*** User 2017-05-05 21:48:18.255 ***
21:48:18.255 [info] Enabling membership...
*** User 2017-05-05 21:48:18.257 ***
21:48:18.257 [info] Disabling blocking sync...
*** User 2017-05-05 21:48:18.262 ***
21:48:18.262 [info] Configured peer_service_manager partisan_default_peer_service_manager on node 'node-3@MacBook-Pro-de-Anne-France'
*** User 2017-05-05 21:48:18.749 ***
Joining node: 'node-3@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50641
*** User 2017-05-05 21:48:18.750 ***
Joining issued: 'node-3@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50641
*** User 2017-05-05 21:48:18.751 ***
Joining node: 'node-2@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50625
*** User 2017-05-05 21:48:18.751 ***
Joining issued: 'node-2@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50625
*** User 2017-05-05 21:48:18.752 ***
Joining node: 'node-1@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50612
*** User 2017-05-05 21:48:18.752 ***
Joining issued: 'node-1@MacBook-Pro-de-Anne-France' to 'runner@MacBook-Pro-de-Anne-France' at port 50612
*** User 2017-05-05 21:48:18.814 ***
Waiting for join to complete with manager: partisan_default_peer_service_manager
*** User 2017-05-05 21:48:18.814 ***
Finished.
*** CT 2017-05-05 21:48:18.814 *** COVER INFO
Adding nodes to cover test: ['runner@MacBook-Pro-de-Anne-France']
*** CT 2017-05-05 21:48:18.823 *** COVER INFO
Successfully added nodes to cover test: []
*** User 2017-05-05 21:48:18.823 ***
Case finished: latency_with_reads_test
*** User 2017-05-05 21:48:25.885 ***
21:48:25.885 [info] Application lasp exited with reason: stopped
*** User 2017-05-05 21:48:25.886 ***
21:48:25.886 [info] Application partisan exited with reason: stopped
=== Ended at 2017-05-05 21:48:25
=== successfully completed test case
=== Returned value: ok
Test run history
| Top level test index


PaymentMethodsActivity()
An activity that allows a customer to select from their attached payment methods, or add a new one via AddPaymentMethodActivity.
This Activity is typically started through com.stripe.android.PaymentSession. To directly start this activity, use PaymentMethodsActivityStarter.startForResult.
Use PaymentMethodsActivityStarter.Result.fromIntent to retrieve the result of this activity from an intent in onActivityResult().


Websites
What makes a good website?
Easy Navigation You don't find yourself lost or stuck on a page
Responsive Design Responds well to changes in window side or medium (tablet, phone etc.)
Design / Aesthetic Good use of negative scheme, consistent colour scheme, flexible visuals
Good Quality Quality of images, content, quick loading
Accessibility
Alt-tags Alternative tags to describe an image
Keyboard navigation Avoiding keyboard traps such as flash applications
Default HTML tags Using button tags for buttons and anchor tags for links to avoid confused screen readings
Unique names for links/buttons Describing where clicking a button will navigate to
Colour considerations Red-green colour deficiency affects approximately 8% of population, hence these colours are avoided
General Data Protection Regulation
Europe's new framework for data protection laws, in full force since May 25th 2018. It is a legislation for smooth implementation of data privacy laws, whilst simultaneously giving greater protection and rights to individuals.
Cookie Consent Warning the user that this website uses cookies at the footer of every page
Data Consent Asking for consent of data retainment in 'Contact' form
Marketing steps to drive people to this website
Ways to increase traffice to website
Quick links Taking advantage of quick links such as QR codes, bit URL, or creating a short domain name
Sticky Website Making sure the website is GOOD (Responsive, easy to navigate, loads quickly)
Stay in Constact Ask for consent to stay in contact through emails or texts
Examine Analytics Data Look into what audience is viewing website for focused user centred consistent
Comment Section Add a comment section or interactive section to engage with viewers
Future steps
If I had more time...
More mediums and features Incorporating videos, music, a search bar.
Further brand development Focusing more on layout and design, incorporating more CSS and Javascript for a more dynamic website


30 Awe-Inspiring Pictures of Old People | CreativeFan
Old age is an inevitable part of life that each one of us has to undergo at a point during our stay on earth until and unless we get an early call from god to reach .
http://creativefan.com/pictures-of-old-people/
Treatment for Herniated or Bulging Discs
Comical 50th Birthday Gift Ideas | eHow.com
Use a photo editing program to add text and graphics. . Funny title ideas include "AAOP: American Association of Old People" or "Old Geezer Monthly." Include .
http://www.ehow.com/list_6022417_comical-50th-birthday-gift-ideas.html
Photobucket | funny old people Pictures, funny old people Images ...
View funny old people Pictures, funny old people Images, funny old people Photos on Photobucket. Share them with your friends on MySpace or upload your .
http://photobucket.com/images/funny%20old%20people/
funny old people graphics Herniated or Bulging Discs
50 Examples of Funny Face Photography
At one point in our lives we all come across as funny to other people, by what we wear, how we act, what we do, the faces we make. This is a . Old Funny Man .
http://www.pxleyes.com/blog/2010/06/50-examples-of-funny-face-photography/
Old people graphics funny websites - photobucket.com, Old People ...
Old people graphics funny found at oldpeoplearefunny.com, .
http://craftkeys.com/old/old-people-graphics-funny/
LiveLeak.com - Old People Pranks ( Funny )
Sep 7, 2011 . Tags: old people pranks, funny, comedy, prank. Marked as: . Pranks by old people (Senior bastards) P1 . Web Graphics and Design .
http://www.liveleak.com/view?i=7b4_1315418159
Official Impairment Listing for Spinal Disorders
Funny Old People
Pictures of funny old people give us all a reality check that we're getting there quick.  Upload 1-4 Pictures or Graphics (optional)[ ? ] .
http://www.you-can-be-funny.com/Funny-Old-People.html
- west desmoines valley high school (narrowing of the spine)
25 Heart Warming Pictures of Old People - SloDive
You can see immense emotions and feelings subaquatic in each of the images below. Elderly people don't want anything from you except your time so try to .
http://slodive.com/inspiration/pictures-of-old-people/Old Man Pictures, Old Man Clip Art, Old Man Photos, Images ...
Vector Clip Art Picture Of An Old Man Sitting On the Toilet Working On His Laptop . bathroom pictures · Picture Of A Cartoon Person In 3D Sitting On the Toilet .
http://www.picturesof.net/search_term_pages/old_man.html
Royalty-Free (RF) Old Man Clipart, Illustrations, Vector Graphics #1
Page 1 of Royalty-Free (RF) stock image gallery featuring Old Man clipart illustrations and Old Man cartoons.
http://www.clipartof.com/gallery/clipart/old_man.html
Royalty-Free (RF) Old Men Clipart, Illustrations, Vector Graphics #1
Page 1 of Royalty-Free (RF) stock image gallery featuring Old Men clipart illustrations and Old Men cartoons.
http://www.clipartof.com/gallery/clipart/old_men.html
Medical-Vocational Allowance for Herniated Disc
Weird Pictures, Funny & Amazing | Weird-O-Matic | Strange Images
When you hear the word bingo, you probably think of a bunch of funny, old people playing a pretty boring game. Right? I can just imagine them. Slowly marking .
http://www.weirdomatic.com/
Over the Hill, Getting Old, Senior Citizen Retirement Humor - Old ...
senior citizen, over the hill, old age, geezer, retirement humor, jokes, funny photos, . An Old man went to the doctor complaining of a terrible pain in his leg.
http://www.pmcaregivers.com/Humor.htm
Clipart Guide - Funny Clipart, Clip Art Illustrations, Images, Graphics ...
Currently displaying images 1-102 of "funny clipart". Next . picture of a man wearing winter clothing with his tongue out in a vector clip art · winterwear clip art .
http://www.clipartguide.com/_search_terms/funny.html
Appealing a Denial of Benefits
Old People Pictures, Old People Clip Art, Old People Photos ...
Old People Pictures, Old People Clip Art, Old People Photos, Images, Graphics, Vectors and Icons More "old people" Pictures.
http://www.picturesof.net/search_term_pages/old_people.html
Cindy Gallop's Online Effort to Promote 'Real,' Not Porn-Fed, Sex ...
Sep 7, 2012 . As graphic and funny as some of the language was, the site was mostly . The Toyboy Manifesto: Why Older Woman Plus Younger Man Is the .
http://www.nytimes.com/2012/09/09/fashion/cindy-gallops-online-effort-to-promote-real-not-porn-fed-sex.html


Welcome to Pomododge!
Use the arrow keys to move the face and avoid the tomatoes. Hit start to play!
Start
Game Over: You lasted
Replay


Welcome to Black Dog
Our business is a rustic coffee shop in downtown Logansport that brings more than coffee to the table. Sip an espresso while browsing our local handcrafted gifts, unwind with a drink at Black Dog Tavern, or attend our weekly Live Music events.


--- extends: minimal.j2 default_block: main title: Jake VanderPlas description: Home page of Jake VanderPlas ---
Dose Meadows, Olympic National Park
I'm the director of Open Software at the University of Washington's eScience institute. I research and teach in a variety of areas, including Astronomy, Astrostatistics, Machine Learning, and Scalable Computation.


---
layout: post
title: ''
date: '2010-04-30T21:59:29-07:00'
tags:
tumblr_url: http://alexhwilliams.tumblr.com/post/562499006/another-vanmorrison-favorite-i-always-read-the
---
Another VanMorrison favorite. I always read the comments on YouTube for classics like this. Daughters talk about their Dads. Girls are reminded of old boyfriends.
It’s a Friday night.