JavaScript
Bring Fuzion's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.
Bring Fuzion's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one.
Plugins can be included individually (using Fuzion's individual *.js
files), or all at once (using Fuzion.js
or the minified fuzion.min.js
).
Both fuzion.js
and fuzion.min.js
contain all plugins in a single file. Include only one.
Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs. Also note that all plugins depend on jQuery (this means jQuery must be included before the plugin files). Latest JQuery should be used.
You can use all Fuzion plugins purely through the markup API without writing a single line of JavaScript. This is Fuzion's first-class API and should be your first consideration when using a plugin.
That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the document namespaced with data-api
. This looks like this:
Alternatively, to target a specific plugin, just include the plugin's name as a namespace along with the data-api namespace like this:
Don't use data attributes from multiple plugins on the same element. For example, a button cannot both have a tooltip and toggle a modal. To accomplish this, use a wrapping element.
We also believe you should be able to use all Fuzion plugins purely through the JavaScript API. All public APIs are single, chainable methods, and return the collection acted upon.
All methods should accept an optional options object, a string which targets a particular method, or nothing (which initiates a plugin with default behavior):
Each plugin also exposes its raw constructor on a Constructor
property: $.fn.popover.Constructor
. If you'd like to get a particular plugin instance, retrieve it directly from an element: $('[rel="popover"]').data('popover')
.
You can change the default settings for a plugin by modifying the plugin's Constructor.DEFAULTS
object:
Sometimes it is necessary to use Fuzion plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call .noConflict
on the plugin you wish to revert the value of.
Fuzion provides custom events for most plugins' unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. show
) is triggered at the start of an event, and its past participle form (ex. shown
) is triggered on the completion of an action.
As of 3.0.0, all Fuzion events are namespaced.
All infinitive events provide preventDefault
functionality. This provides the ability to stop the execution of an action before it starts.
The version of each of Fuzion's jQuery plugins can be accessed via the VERSION
property of the plugin's constructor. For example, for the tooltip plugin:
Fuzion's plugins don't fall back particularly gracefully when JavaScript is disabled. If you care about the user experience in this case, use
to explain the situation (and how to re-enable JavaScript) to your users, and/or add your own custom fallbacks.
Fuzion does not officially support third-party JavaScript libraries like Prototype or jQuery UI. Despite .noConflict
and namespaced events, there may be compatibility problems that you need to fix on your own.
For simple transition effects, include transition.js
once alongside the other JS files. If you're using the compiled (or minified) fuzion.js
, there is no need to include this—it's already there.
Transition.js is a basic helper for transitionEnd
events as well as a CSS transition emulator. It's used by the other plugins to check for CSS transition support and to catch hanging transitions.
Transitions can be globally disabled using the following JavaScript snippet, which must come after transition.js
(or fuzion.js
or fuzion.min.js
, as the case may be) has loaded:
Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
Be sure not to open a modal while another is still visible. Showing more than one modal at a time requires custom code.
Always try to place a modal's HTML code in a top-level position in your document to avoid other components affecting the modal's appearance and/or functionality.
There are some caveats regarding using modals on mobile devices. See our browser support docs for details.
Due to how HTML5 defines its semantics, the autofocus
HTML attribute has no effect in Fuzion modals. To achieve the same effect, use some custom JavaScript:
A rendered modal with header, body, and set of actions in the footer.
Toggle a modal via JavaScript by clicking the button below. It will slide down and fade in from the top of the page.
Be sure to add role="dialog"
and aria-labelledby="..."
, referencing the modal title, to .modal
, and role="document"
to the .modal-dialog
itself.
Additionally, you may give a description of your modal dialog with aria-describedby
on .modal
.
Embedding YouTube videos in modals requires additional JavaScript not in Fuzion to automatically stop playback and more.
Modals have two optional sizes, available via modifier classes to be placed on a .modal-dialog
.
For modals that simply appear rather than fade in to view, remove the .fade
class from your modal markup.
To take advantage of the Fuzion grid system within a modal, just nest .row
s within the .modal-body
and then use the normal grid system classes.
Have a bunch of buttons that all trigger the same modal, just with slightly different contents? Use event.relatedTarget
and HTML data-*
attributes (possibly via jQuery) to vary the contents of the modal depending on which button was clicked. See the Modal Events docs for details on relatedTarget
,
The modal plugin toggles your hidden content on demand, via data attributes or JavaScript. It also adds .modal-open
to the
to override default scrolling behavior and generates a .modal-backdrop
to provide a click area for dismissing shown modals when clicking outside the modal.
Activate a modal without writing JavaScript. Set data-toggle="modal"
on a controller element, like a button, along with a data-target="#foo"
or href="#foo"
to target a specific modal to toggle.
Call a modal with id myModal
with a single line of JavaScript:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-backdrop=""
.
| Name | type | default | description |
|---|---|---|---|
| backdrop | boolean or the string 'static' |
true | Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click. |
| keyboard | boolean | true | Closes the modal when escape key is pressed |
| show | boolean | true | Shows the modal when initialized. |
| remote | path | false |
This option is deprecated since v3.3.0 and has been removed in v4. We recommend instead using client-side templating or a data binding framework, or calling jQuery.load yourself. If a remote URL is provided, content will be loaded one time via jQuery's |
.modal(options)
Activates your content as a modal. Accepts an optional options object
.
.modal('toggle')
Manually toggles a modal. Returns to the caller before the modal has actually been shown or hidden (i.e. before the shown.bs.modal
or hidden.bs.modal
event occurs).
.modal('show')
Manually opens a modal. Returns to the caller before the modal has actually been shown (i.e. before the shown.bs.modal
event occurs).
.modal('hide')
Manually hides a modal. Returns to the caller before the modal has actually been hidden (i.e. before the hidden.bs.modal
event occurs).
.modal('handleUpdate')
Readjusts the modal's positioning to counter a scrollbar in case one should appear, which would make the modal jump to the left.
Only needed when the height of the modal changes while it is open.
Fuzion's modal class exposes a few events for hooking into modal functionality.
All modal events are fired at the modal itself (i.e. at the

).
| Event Type | Description |
|---|---|
| show.bs.modal | This event fires immediately when the show instance method is called. If caused by a click, the clicked element is available as the relatedTarget property of the event. |
| shown.bs.modal | This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the relatedTarget property of the event. |
| hide.bs.modal | This event is fired immediately when the hide instance method has been called. |
| hidden.bs.modal | This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). |
| loaded.bs.modal | This event is fired when the modal has loaded content using the remote option. |
Add dropdown menus to nearly anything with this simple plugin, including the navbar, tabs, and pills.
Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the .open
class on the parent list item.
On mobile devices, opening a dropdown adds a .dropdown-backdrop
as a tap area for closing dropdown menus when tapping outside the menu, a requirement for proper iOS support. This means that switching from an open dropdown menu to a different dropdown menu requires an extra tap on mobile.
Note: The data-toggle="dropdown"
attribute is relied on for closing dropdown menus at an application level, so it's a good idea to always use it.
Add data-toggle="dropdown"
to a link or button to toggle a dropdown.
To keep URLs intact with link buttons, use the data-target
attribute instead of href="#"
.
Call the dropdowns via JavaScript:
data-toggle="dropdown"
still requiredRegardless of whether you call your dropdown via JavaScript or instead use the data-api, data-toggle="dropdown"
is always required to be present on the dropdown's trigger element.
None
$().dropdown('toggle')
Toggles the dropdown menu of a given navbar or tabbed navigation.
All dropdown events are fired at the .dropdown-menu
's parent element.
All dropdown events have a relatedTarget
property, whose value is the toggling anchor element.
| Event Type | Description |
|---|---|
| show.bs.dropdown | This event fires immediately when the show instance method is called. |
| shown.bs.dropdown | This event is fired when the dropdown has been made visible to the user (will wait for CSS transitions, to complete). |
| hide.bs.dropdown | This event is fired immediately when the hide instance method has been called. |
| hidden.bs.dropdown | This event is fired when the dropdown has finished being hidden from the user (will wait for CSS transitions, to complete). |
The ScrollSpy plugin is for automatically updating nav targets based on scroll position. Scroll the area below the navbar and watch the active class change. The dropdown sub items will be highlighted as well.
Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.
Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.
Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.
In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.
Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.
Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats.
Navbar links must have resolvable id targets. For example, a home
must correspond to something in the DOM like

.
:visible
target elements ignoredTarget elements that are not :visible
according to jQuery will be ignored and their corresponding nav items will never be highlighted.
No matter the implementation method, scrollspy requires the use of position: relative;
on the element you're spying on. In most cases this is the
. When scrollspying on elements other than the
, be sure to have a height
set and overflow-y: scroll;
applied.
To easily add scrollspy behavior to your topbar navigation, add data-spy="scroll"
to the element you want to spy on (most typically this would be the
). Then add the data-target
attribute with the ID or class of the parent element of any Fuzion .nav
component.
After adding position: relative;
in your CSS, call the scrollspy via JavaScript:
.scrollspy('refresh')
When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh method like so:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-offset=""
.
| Name | type | default | description |
|---|---|---|---|
| offset | number | 10 | Pixels to offset from top when calculating position of scroll. |
| Event Type | Description |
|---|---|
| activate.bs.scrollspy | This event fires whenever a new item becomes activated by the scrollspy. |
Add quick, dynamic tab functionality to transition through panes of local content, even via dropdown menus. Nested tabs are not supported.
Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown.  Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.
This plugin extends the tabbed navigation component to add tabbable areas.
Enable tabbable tabs via JavaScript (each tab needs to be activated individually):
You can activate individual tabs in several ways:
You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-toggle="tab"
or data-toggle="pill"
on an element. Adding the nav
and nav-tabs
classes to the tab ul
will apply the Fuzion tab styling, while adding the nav
and nav-pills
classes will apply pill styling.
To make tabs fade in, add .fade
to each .tab-pane
. The first tab pane must also have .in
to make the initial content visible.
$().tab
Activates a tab element and content container. Tab should have either a data-target
or an href
targeting a container node in the DOM. In the above examples, the tabs are the
s with data-toggle="tab"
attributes.
.tab('show')
Selects the given tab and shows its associated content. Any other tab that was previously selected becomes unselected and its associated content is hidden. Returns to the caller before the tab pane has actually been shown (i.e. before the shown.bs.tab
event occurs).
When showing a new tab, the events fire in the following order:
hide.bs.tab
(on the current active tab)show.bs.tab
(on the to-be-shown tab)hidden.bs.tab
(on the previous active tab, the same one as for the hide.bs.tab
event)shown.bs.tab
(on the newly-active just-shown tab, the same one as for the show.bs.tab
event)If no tab was already active, then the hide.bs.tab
and hidden.bs.tab
events will not be fired.
| Event Type | Description |
|---|---|
| show.bs.tab | This event fires on tab show, but before the new tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively. |
| shown.bs.tab | This event fires on tab show after a tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively. |
| hide.bs.tab | This event fires when a new tab is to be shown (and thus the previous active tab is to be hidden). Use event.target and event.relatedTarget to target the current active tab and the new soon-to-be-active tab, respectively. |
| hidden.bs.tab | This event fires after a new tab is shown (and thus the previous active tab is hidden). Use event.target and event.relatedTarget to target the previous active tab and the new active tab, respectively. |
Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.
Tooltips with zero-length titles are never displayed.
Hover over the links below to see tooltips:
Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.
Four options are available: top, right, bottom, and left aligned.
For performance reasons, the Tooltip and Popover data-apis are opt-in, meaning you must initialize them yourself.
One way to initialize all tooltips on a page would be to select them by their data-toggle
attribute:
The tooltip plugin generates content and markup on demand, and by default places tooltips after their trigger element.
Trigger the tooltip via JavaScript:
The required markup for a tooltip is only a data
attribute and title
on the HTML element you wish to have a tooltip. The generated markup of a tooltip is rather simple, though it does require a position (by default, set to top
by the plugin).
Sometimes you want to add a tooltip to a hyperlink that wraps multiple lines. The default behavior of the tooltip plugin is to center it horizontally and vertically. Add white-space: nowrap;
to your anchors to avoid this.
When using tooltips on elements within a .btn-group
or an .input-group
, or on table-related elements (
,
,

,

,

,

), you'll have to specify the option container: 'body'
(documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the tooltip is triggered).
For users navigating with a keyboard, and in particular users of assistive technologies, you should only add tooltips to keyboard-focusable elements such as links, form controls, or any arbitrary element with a tabindex="0"
attribute.
To add a tooltip to a disabled
or .disabled
element, put the element inside of a

and apply the tooltip to that

instead.
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-animation=""
.
| Name | Type | Default | Description |
|---|---|---|---|
| animation | boolean | true | Apply a CSS fade transition to the tooltip |
| container | string | false | false |
Appends the tooltip to a specific element. Example: |
| delay | number | object | 0 |
Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type If a number is supplied, delay is applied to both hide/show Object structure is: |
| html | boolean | false | Insert HTML into the tooltip. If false, jQuery's text method will be used to insert content into the DOM. Use text if you're worried about XSS attacks. |
| placement | string | function | 'top' |
How to position the tooltip - top | bottom | left | right | auto.
When a function is used to determine the placement, it is called with the tooltip DOM node as its first argument and the triggering element DOM node as its second. The |
| selector | string | false | If a selector is provided, tooltip objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have tooltips added. |
| template | string | '

' |
Base HTML to use when creating the tooltip. The tooltip's
The outermost wrapper element should have the |
| title | string | function | '' |
Default title value if If a function is given, it will be called with its |
| trigger | string | 'hover focus' | How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. manual cannot be combined with any other trigger. |
| viewport | string | object | function | { selector: 'body', padding: 0 } |
Keeps the tooltip within the bounds of this element. Example: If a function is given, it is called with the triggering element DOM node as its only argument. The |
Options for individual tooltips can alternatively be specified through the use of data attributes, as explained above.
$().tooltip(options)
Attaches a tooltip handler to an element collection.
.tooltip('show')
Reveals an element's tooltip. Returns to the caller before the tooltip has actually been shown (i.e. before the shown.bs.tooltip
event occurs). This is considered a "manual" triggering of the tooltip. Tooltips with zero-length titles are never displayed.
.tooltip('hide')
Hides an element's tooltip. Returns to the caller before the tooltip has actually been hidden (i.e. before the hidden.bs.tooltip
event occurs). This is considered a "manual" triggering of the tooltip.
.tooltip('toggle')
Toggles an element's tooltip. Returns to the caller before the tooltip has actually been shown or hidden (i.e. before the shown.bs.tooltip
or hidden.bs.tooltip
event occurs). This is considered a "manual" triggering of the tooltip.
.tooltip('destroy')
Hides and destroys an element's tooltip. Tooltips that use delegation (which are created using the selector
option) cannot be individually destroyed on descendant trigger elements.
| Event Type | Description |
|---|---|
| show.bs.tooltip | This event fires immediately when the show instance method is called. |
| shown.bs.tooltip | This event is fired when the tooltip has been made visible to the user (will wait for CSS transitions to complete). |
| hide.bs.tooltip | This event is fired immediately when the hide instance method has been called. |
| hidden.bs.tooltip | This event is fired when the tooltip has finished being hidden from the user (will wait for CSS transitions to complete). |
| inserted.bs.tooltip | This event is fired after the show.bs.tooltip event when the tooltip template has been added to the DOM. |
Add small overlays of content, like those on the iPad, to any element for housing secondary information.
Popovers whose both title and content are zero-length are never displayed.
Popovers require the tooltip plugin to be included in your version of Fuzion.
For performance reasons, the Tooltip and Popover data-apis are opt-in, meaning you must initialize them yourself.
One way to initialize all popovers on a page would be to select them by their data-toggle
attribute:
When using popovers on elements within a .btn-group
or an .input-group
, or on table-related elements (
,
,

,

,

,

), you'll have to specify the option container: 'body'
(documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the popover is triggered).
To add a popover to a disabled
or .disabled
element, put the element inside of a

and apply the popover to that

instead.
Sometimes you want to add a popover to a hyperlink that wraps multiple lines. The default behavior of the popover plugin is to center it horizontally and vertically. Add white-space: nowrap;
to your anchors to avoid this.
Four options are available: top, right, bottom, and left aligned.
Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Use the focus
trigger to dismiss popovers on the next click that the user makes.
For proper cross-browser and cross-platform behavior, you must use the
tag, not the <button>
tag, and you also must include the role="button"
and tabindex
attributes.
Enable popovers via JavaScript:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-animation=""
.
| Name | Type | Default | Description |
|---|---|---|---|
| animation | boolean | true | Apply a CSS fade transition to the popover |
| container | string | false | false |
Appends the popover to a specific element. Example: |
| content | string | function | '' |
Default content value if If a function is given, it will be called with its |
| delay | number | object | 0 |
Delay showing and hiding the popover (ms) - does not apply to manual trigger type If a number is supplied, delay is applied to both hide/show Object structure is: |
| html | boolean | false | Insert HTML into the popover. If false, jQuery's text method will be used to insert content into the DOM. Use text if you're worried about XSS attacks. |
| placement | string | function | 'right' |
How to position the popover - top | bottom | left | right | auto.
When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. The |
| selector | string | false | If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have popovers added. |
| template | string | '

' |
Base HTML to use when creating the popover. The popover's The popover's
The outermost wrapper element should have the |
| title | string | function | '' |
Default title value if If a function is given, it will be called with its |
| trigger | string | 'click' | How popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. manual cannot be combined with any other trigger. |
| viewport | string | object | function | { selector: 'body', padding: 0 } |
Keeps the popover within the bounds of this element. Example: If a function is given, it is called with the triggering element DOM node as its only argument. The |
Options for individual popovers can alternatively be specified through the use of data attributes, as explained above.
$().popover(options)
Initializes popovers for an element collection.
.popover('show')
Reveals an element's popover. Returns to the caller before the popover has actually been shown (i.e. before the shown.bs.popover
event occurs). This is considered a "manual" triggering of the popover. Popovers whose both title and content are zero-length are never displayed.
.popover('hide')
Hides an element's popover. Returns to the caller before the popover has actually been hidden (i.e. before the hidden.bs.popover
event occurs). This is considered a "manual" triggering of the popover.
.popover('toggle')
Toggles an element's popover. Returns to the caller before the popover has actually been shown or hidden (i.e. before the shown.bs.popover
or hidden.bs.popover
event occurs). This is considered a "manual" triggering of the popover.
.popover('destroy')
Hides and destroys an element's popover. Popovers that use delegation (which are created using the selector
option) cannot be individually destroyed on descendant trigger elements.
| Event Type | Description |
|---|---|
| show.bs.popover | This event fires immediately when the show instance method is called. |
| shown.bs.popover | This event is fired when the popover has been made visible to the user (will wait for CSS transitions to complete). |
| hide.bs.popover | This event is fired immediately when the hide instance method has been called. |
| hidden.bs.popover | This event is fired when the popover has finished being hidden from the user (will wait for CSS transitions to complete). |
| inserted.bs.popover | This event is fired after the show.bs.popover event when the popover template has been added to the DOM. |
Add dismiss functionality to all alert messages with this plugin.
When using a .close
button, it must be the first child of the .alert-dismissible
and no text content may come before it in the markup.
Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.
Just add data-dismiss="alert"
to your close button to automatically give an alert close functionality. Closing an alert removes it from the DOM.
To have your alerts use animation when closing, make sure they have the .fade
and .in
classes already applied to them.
$().alert()
Makes an alert listen for click events on descendant elements which have the data-dismiss="alert"
attribute. (Not necessary when using the data-api's auto-initialization.)
$().alert('close')
Closes an alert by removing it from the DOM. If the .fade
and .in
classes are present on the element, the alert will fade out before it is removed.
Fuzion's alert plugin exposes a few events for hooking into alert functionality.
| Event Type | Description |
|---|---|
| close.bs.alert | This event fires immediately when the close instance method is called. |
| closed.bs.alert | This event is fired when the alert has been closed (will wait for CSS transitions to complete). |
Do more with buttons. Control button states or create groups of buttons for more components like toolbars.
Firefox persists form control states (disabledness and checkedness) across page loads. A workaround for this is to use autocomplete="off"
. See Mozilla bug #654072.
Add data-loading-text="Loading..."
to use a loading state on a button.
This feature is deprecated since v3.3.5 and has been removed in v4.
For the sake of this demonstration, we are using data-loading-text
and $().button('loading')
, but that's not the only state you can use. See more on this below in the $().button(string)
documentation.
Add data-toggle="button"
to activate toggling on a single button.
.active
and aria-pressed="true"
For pre-toggled buttons, you must add the .active
class and the aria-pressed="true"
attribute to the button
yourself.
Add data-toggle="buttons"
to a .btn-group
containing checkbox or radio inputs to enable toggling in their respective styles.
.active
For preselected options, you must add the .active
class to the input's label
yourself.
If the checked state of a checkbox button is updated without firing a click
event on the button (e.g. via <input type="reset">
or via setting the checked
property of the input), you will need to toggle the .active
class on the input's label
yourself.
$().button('toggle')
Toggles push state. Gives the button the appearance that it has been activated.
$().button('reset')
Resets button state - swaps text to original text. This method is asynchronous and returns before the resetting has actually completed.
$().button(string)
Swaps text to any data defined text state.
Flexible plugin that utilizes a handful of classes for easy toggle behavior.
Collapse requires the transitions plugin to be included in your version of Fuzion.
Click the buttons below to show and hide another element via class changes:
.collapse
hides content.collapsing
is applied during transitions.collapse.in
shows contentYou can use a link with the href
attribute, or a button with the data-target
attribute. In both cases, the data-toggle="collapse"
is required.
Extend the default collapse behavior to create an accordion with the panel component.
It's also possible to swap out .panel-body
s with .list-group
s.
Be sure to add aria-expanded
to the control element. This attribute explicitly defines the current state of the collapsible element to screen readers and similar assistive technologies. If the collapsible element is closed by default, it should have a value of aria-expanded="false"
. If you've set the collapsible element to be open by default using the in
class, set aria-expanded="true"
on the control instead. The plugin will automatically toggle this attribute based on whether or not the collapsible element has been opened or closed.
Additionally, if your control element is targeting a single collapsible element – i.e. the data-target
attribute is pointing to an id
selector – you may add an additional aria-controls
attribute to the control element, containing the id
of the collapsible element. Modern screen readers and similar assistive technologies make use of this attribute to provide users with additional shortcuts to navigate directly to the collapsible element itself.
The collapse plugin utilizes a few classes to handle the heavy lifting:
.collapse
hides the content.collapse.in
shows the content.collapsing
is added when the transition starts, and removed when it finishesThese classes can be found in component-animations.less
.
Just add data-toggle="collapse"
and a data-target
to the element to automatically assign control of a collapsible element. The data-target
attribute accepts a CSS selector to apply the collapse to. Be sure to add the class collapse
to the collapsible element. If you'd like it to default open, add the additional class in
.
To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector"
. Refer to the demo to see this in action.
Enable manually with:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-parent=""
.
| Name | type | default | description |
|---|---|---|---|
| parent | selector | false | If a selector is provided, then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior - this is dependent on the panel class) |
| toggle | boolean | true | Toggles the collapsible element on invocation |
.collapse(options)
Activates your content as a collapsible element. Accepts an optional options object
.
.collapse('toggle')
Toggles a collapsible element to shown or hidden. Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the shown.bs.collapse
or hidden.bs.collapse
event occurs).
.collapse('show')
Shows a collapsible element. Returns to the caller before the collapsible element has actually been shown (i.e. before the shown.bs.collapse
event occurs).
.collapse('hide')
Hides a collapsible element. Returns to the caller before the collapsible element has actually been hidden (i.e. before the hidden.bs.collapse
event occurs).
Fuzion's collapse class exposes a few events for hooking into collapse functionality.
| Event Type | Description |
|---|---|
| show.bs.collapse | This event fires immediately when the show instance method is called. |
| shown.bs.collapse | This event is fired when a collapse element has been made visible to the user (will wait for CSS transitions to complete). |
| hide.bs.collapse | This event is fired immediately when the hide method has been called. |
| hidden.bs.collapse | This event is fired when a collapse element has been hidden from the user (will wait for CSS transitions to complete). |
A slideshow component for cycling through elements, like a carousel. Nested carousels are not supported.
The carousel component is generally not compliant with accessibility standards. If you need to be compliant, please consider other options for presenting your content.
Fuzion exclusively uses CSS3 for its animations, but Internet Explorer 8 & 9 don't support the necessary CSS properties. Thus, there are no slide transition animations when using these browsers. We have intentionally decided not to include jQuery-based fallbacks for the transitions.
The .active
class needs to be added to one of the slides. Otherwise, the carousel will not be visible.
The .glyphicon .glyphicon-chevron-left
and .glyphicon .glyphicon-chevron-right
classes are not necessarily needed for the controls. Fuzion provides .icon-prev
and .icon-next
as plain unicode alternatives.
Add captions to your slides easily with the .carousel-caption
element within any .item
. Place just about any optional HTML within there and it will be automatically aligned and formatted.
Carousels require the use of an id
on the outermost container (the .carousel
) for carousel controls to function properly. When adding multiple carousels, or when changing a carousel's id
, be sure to update the relevant controls.
Use data attributes to easily control the position of the carousel. data-slide
accepts the keywords prev
or next
, which alters the slide position relative to its current position. Alternatively, use data-slide-to
to pass a raw slide index to the carousel data-slide-to="2"
, which shifts the slide position to a particular index beginning with 0
.
The data-ride="carousel"
attribute is used to mark a carousel as animating starting at page load. It cannot be used in combination with (redundant and unnecessary) explicit JavaScript initialization of the same carousel.
Call carousel manually with:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-interval=""
.
| Name | type | default | description |
|---|---|---|---|
| interval | number | 5000 | The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle. |
| pause | string | null | "hover" | If set to "hover" , pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on mouseleave . If set to null , hovering over the carousel won't pause it. |
| wrap | boolean | true | Whether the carousel should cycle continuously or have hard stops. |
| keyboard | boolean | true | Whether the carousel should react to keyboard events. |
.carousel(options)
Initializes the carousel with an optional options object
and starts cycling through items.
.carousel('cycle')
Cycles through the carousel items from left to right.
.carousel('pause')
Stops the carousel from cycling through items.
.carousel(number)
Cycles the carousel to a particular frame (0 based, similar to an array).
.carousel('prev')
Cycles to the previous item.
.carousel('next')
Cycles to the next item.
Fuzion's carousel class exposes two events for hooking into carousel functionality.
Both events have the following additional properties:
direction
: The direction in which the carousel is sliding (either "left"
or "right"
).relatedTarget
: The DOM element that is being slid into place as the active item.All carousel events are fired at the carousel itself (i.e. at the

).
| Event Type | Description |
|---|---|
| slide.bs.carousel | This event fires immediately when the slide instance method is invoked. |
| slid.bs.carousel | This event is fired when the carousel has completed its slide transition. |
The affix plugin toggles position: fixed;
on and off, emulating the effect found with position: sticky;
. The subnavigation on the right is a live demo of the affix plugin.
Use the affix plugin via data attributes or manually with your own JavaScript. In both situations, you must provide CSS for the positioning and width of your affixed content.
Note: Do not use the affix plugin on an element contained in a relatively positioned element, such as a pulled or pushed column, due to a Safari rendering bug.
The affix plugin toggles between three classes, each representing a particular state: .affix
, .affix-top
, and .affix-bottom
. You must provide the styles, with the exception of position: fixed;
on .affix
, for these classes yourself (independent of this plugin) to handle the actual positions.
Here's how the affix plugin works:
.affix-top
to indicate the element is in its top-most position. At this point no CSS positioning is required..affix
replaces .affix-top
and sets position: fixed;
(provided by Fuzion's CSS)..affix
with .affix-bottom
. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add position: absolute;
when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the element from there.Follow the above steps to set your CSS for either of the usage options below.
To easily add affix behavior to any element, just add data-spy="affix"
to the element you want to spy on. Use offsets to define when to toggle the pinning of an element.
Call the affix plugin via JavaScript:
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-offset-top="200"
.
| Name | type | default | description |
|---|---|---|---|
| offset | number | function | object | 10 | Pixels to offset from screen when calculating position of scroll. If a single number is provided, the offset will be applied in both top and bottom directions. To provide a unique, bottom and top offset just provide an object offset: { top: 10 } or offset: { top: 10, bottom: 5 } . Use a function when you need to dynamically calculate an offset. |
| target | selector | node | jQuery element | the window object |
Specifies the target element of the affix. |
.affix(options)
Activates your content as affixed content. Accepts an optional options object
.
.affix('checkPosition')
Recalculates the state of the affix based on the dimensions, position, and scroll position of the relevant elements. The .affix
, .affix-top
, and .affix-bottom
classes are added to or removed from the affixed content according to the new state. This method needs to be called whenever the dimensions of the affixed content or the target element are changed, to ensure correct positioning of the affixed content.
Fuzion's affix plugin exposes a few events for hooking into affix functionality.
| Event Type | Description |
|---|---|
| affix.bs.affix | This event fires immediately before the element has been affixed. |
| affixed.bs.affix | This event is fired after the element has been affixed. |
| affix-top.bs.affix | This event fires immediately before the element has been affixed-top. |
| affixed-top.bs.affix | This event is fired after the element has been affixed-top. |
| affix-bottom.bs.affix | This event fires immediately before the element has been affixed-bottom. |
| affixed-bottom.bs.affix | This event is fired after the element has been affixed-bottom. |


Naming Objects
To change or set an object's name from the Level Builder, select the object.|
Now, go to the Edit Tab (as
shown in Figure
1.1.1).
|
Figure 1.1.1 |
| Next, open the Scripting Section and type a name into the Name field (I called this object 'pTank') (as shown in Figure 1.1.2). |
Figure 1.1.2 |
function up() { pTank.setLinearVelocity(0,-10); }


Watch: This child’s choreographed routine with her dog is just perfect 29 Nov 2019, 10:14 by Scroll Staff A Twitter user called it the ‘best one minute of the day’. Read Comments


ozpIwc.KeyBroadcastLocalStorageLink Class
This link connects peers using the HTML5 localstorage API. It is a second generation version of the localStorageLink that bypasses most of the garbage collection issues.
When a packet is sent, this link turns it to a string, creates a key with that value, and immediately deletes it. This still sends the storage event containing the packet as the key. This completely eliminates the need to garbage collect the localstorage space, with the associated mutex contention and full-buffer issues.
Constructor
ozpIwc.KeyBroadcastLocalStorageLink
-
[config]
Parameters:
-
[config]
Object optionalConfiguration for this link
-
[peer=ozpIwc.defaultPeer]
ozpIwc.Peer optionalThe peer to connect to.
-
[prefix='ozpIwc']
String optionalNamespace for communicating, must be the same for all peers on the same network.
-
[selfId]
String optionalUnique name within the peer network. Defaults to the peer id.
-
[maxRetries]
Number optionalNumber of times packet transmission will retry if failed. Defaults to 6.
-
[queueSize]
Number optionalNumber of packets allowed to be queued at one time. Defaults to 1024.
-
[fragmentSize]
Number optionalSize in bytes of which any TransportPacket exceeds will be sent in FragmentPackets.
-
[fragmentTime]
Number optionalTime in milliseconds after a fragment is received and additional expected fragments are not received that the message is dropped.
-
Item Index
Methods
attemptSend
-
packet
-
[attemptCount]
Recursively tries sending the packet maxRetries times. The packet is dropped and the send fails after reaching max attempts.
Parameters:
-
packet
ozpIwc.NetworkPacket -
[attemptCount]
Number optionalnumber of times attempted to send packet.
defragmentPacket
-
fragments
Rebuilds the original packet sent across the keyBroadcastLocalStorageLink from the fragments it was broken up into.
Parameters:
-
fragments
ozpIwc.FragmentStorethe grouping of fragments to reconstruct
Returns:
result the reconstructed NetworkPacket with TransportPacket as its data property.
handleFragment
-
packet
Handles fragmented packets received from the router. When all fragments of a message have been received, the resulting packet will be passed on to the registered peer.
Parameters:
-
packet
ozpIwc.NetworkPacketNetworkPacket containing an ozpIwc.FragmentPacket as its data property
queueSend
-
packet
Parameters:
-
packet
Object
send
-
packet
Publishes a packet to other peers. If the sendQueue is full the send will not occur. If the TransportPacket is larger than the fragmentSize, an ozpIwc.FragmentPacket will be sent instead.
Parameters:
-
packet
ozpIwc.NetworkPacket
sendImpl
-
packet
Implementation of publishing packets to peers through localStorage. If the localStorage is full or a write collision occurs, the send will not occur. Returns status of localStorage write, null if success.
Parameters:
-
packet
ozpIwc.NetworkPacket
storeFragment
-
packet
Stores a received fragment. When the first fragment of a message is received, a timer is set to destroy the storage of the message fragments should not all messages be received.
Parameters:
-
packet
ozpIwc.NetworkPacketNetworkPacket containing an ozpIwc.FragmentPacket as its data property
Returns:
result true if successful.
Properties
fragmentSize
Number
Minimum size in bytes that a packet will broken into fragments.
Default: 1310720
fragmentTimeout
Number
The amount of time allotted to the Link to wait between expected fragment packets. If an expected fragment is not received within this timeout the packet is dropped.
Default: 1000
maxRetries
Number
The maximum number of retries the link will take to send a package. A timeout of
max(1, 2^(
Default: 6
myKeysTimeout
Number
Milliseconds to wait before deleting this link's keys
Default: 5000
otherKeysTimeout
Number
Milliseconds to wait before deleting other link's keys
Default: 120000
prefix
String
Namespace for communicating, must be the same for all peers on the same network.
Default: "ozpIwc"
queueSize
Number
Maximum number of packets that can be in the send queue at any given time.
Default: 1024
selfId
String
Unique name within the peer network. Defaults to the peer id.
Default: ozpIwc.defaultPeer.selfId
sendQueue
Array
A queue for outgoing packets. If this queue is full further packets will not be added.
Default: []


ZXing
Copyright 2010 ZXing authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
MWM-for-Android
Copyright 2011 Meta Watch Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0


User
- id : Integer
Unique identifier representing a specific user
- username : String
Name given to the user.
- operation_definitions : List
Array of IDs of all the process descriptions created by the user
- definition : String
JSON-formatted string containing all the information required to start the process


Toggle navigation
Logout
Matches
Analysis
Tips
Matches
Analysis
Scores During 10 Minute Periods
Number of Scores
Minutes
Tips
Tips from most recent match


Software Developer @ Patagonia
May 2018 - Current
- Contribute to technical design specs and implement/test enhancements/fixes for both FlexPLM and D365FO systems
- Leverage monitoring tools to identify where code or UI changes can most benefit users in PLM and D365
- Implemented an automated return process that eliminated a several month long warehouse backlog caused by COVID
- Implemented a new exchanges processes saving dozens of Call Center hours yearly and streamlined the customer experience
- Create Azure Functions to improve scalability of some internal services
- Co-lead version control support answering Git questions, fixing branches, enforcing Gitflow, approving PR's, and more
- Reduced PLM system downtime by creating automated CI/CD pipelines in Azure DevOps
- Helped give away more than $1,000,000 to grassroots enviro causes as a member of the Enviro Grants Committee
Java
X++
C#
D365FO
FlexPLM
JMC
IntelliJ
VisualStudio
VSCode
Git
Azure
Azure DevOps
Agile
Software Team Lead @ NAVAIR, U.S. Navy
Mar 2017 - May 2018
- Led agile software team of 2-3 full time developers and 2 interns on EW post-flight test software
- Gathered requirements, user stories, and prioritized tasking for devs based on stakeholder priorities
- Re-architected data aggregation software that reduced memory footprint to improve hardware requirements
- Reduced aircraft to threat data analysis from days to minutes by architecting and impementing an automated analysis framework
- Developed an agile process that met organizational waterfall measures while delivering products faster
- Supported several data collection missions in remote locations successfully
Java
JavaFX
C++
C#
RaptorX
IntelliJ
YouTrack
JUnit
Mercurial
Leadership
Kanban
Software Engineer @ NAVAIR, U.S. Navy
July 2015 - Mar 2017
- Develop visualization tools that analyze defensive EW flight test data on a globe using a plugin to RaptorX
- Redesigned, developed, and tested Java Swing based UI visualization components to fulfill user needs
- Generated tasking, directed work, answered questions, and mentored five interns concurrently
- Architected and built a tool to convert many concurrent real-time UAV TSPI data sources to a secure network
- Refactored and tested critical parts of user interfaces on a live test range without impacting operations
Java
Swing
C
C++
C#
RaptorX
IntelliJ
VisualStudio
YouTrack
JUnit
Mercurial
SVS
UX Design
Agile
Summer Intern @ CERN, Switzerland
Summers 2013 & 2014
- Created features and improved efficiency of visualization software comparing data to simulations
- Found and fixed a multi-year long bug that resolved a discrepancy between data and simulation
- Improved efficiency and reduced memory footprint of existing algorithms reducing job times by 30%
- Identified multiple bugs using gdb and contributed to patches
C++
Bash
Ubuntu
Git
SVN
Agile


ensembleMetadata
The ensembleMetadata
class organizes and records metadata values along the rows and columns of a state vector ensemble. The class uses this metadata to provide a number of utility functions for working with state vector ensembles. In addition to normal workflows, these utilities can help you extend DASH
to create new routines and analyses.
We’ll be seeing ensembleMetadata
commands throughout the rest of the tutorial, and we’ll introduce the commands as they become relevant. For now, we’ll just give a brief overview of some of the class’s capabilities.
Locate forward model inputs
You can use the class to locate the variables needed to run proxy forward models. The closestLatLon
command locates data values nearest to a set of coordinates, and the find
command locates state vector rows corresponding to a specific variable. Also, you can use the variable
command to return metadata values for specific state vector variables.
Coordinates for localization
You can use the latlon
command to return a latitude-longitude coordinate for every state vector element. These coordinates are often useful for implementing covariance localization.
Regrid state vector variables
You can use the regrid
command to reshape state vector variables into their original data grids. This can be useful for mapping assimilated variables, or for double checking that an ensemble appears correct.
Identify ensemble members
You can use the members
command to return metadata for each ensemble member in the state vector. This can be useful when designing evolving (time-dependent) ensembles.
And more…
The ensembleMetadata
class has a number of other utilities that we will not discuss here. However, we encourage reading the documentation at dash.doc('ensembleMetadata')
. If you plan on writing new routines to manipulate ensembles, then this documentation is a good place to start.


An HTTP request by a client usually sends a header called Accept. That header signals the web server (and hence Ninja) what kind of content the client wants to get. In the request itself the header usually looks like Accept:application/json.
The value of the header field tells the server which kind of response the client wants to get back. For instance a regular web browser sends a header Accept:text/html and wants to get back HTML content. An API client would send a Accept:application/json to signal that the web server should send the content as JSON.
That means that one route like myserver.com/api/person can return the result in different representations. And that’s what content negotiation is all about.
By the way - in reality content negotiation can become quite complex. There is a good article on Wikipedia about it: http://en.wikipedia.org/wiki/Content_negotiation
A Ninja result offers two methods to tweak the content negotiation behavior:
supportedContentTypes allows you to specify which content types this result is supposed to handle.
Let’s say you got a Person object:
class Person { String name; }
And you want a controller that handles XML and JSON. Then you’d specify the following route and controller:
router.GET().route("/api/person").with(MyController.class, "getPerson");
and
public Result getPerson() { Person person = new Person(); person.name = "Fritz Fritzensen"; return Results .ok() .supportedContentTypes( Result.APPLICATION_JSON, Result.APPLICATION_XML); }
Route /api/person would then handle Accept:application/json and Accept:application/xml. The cool thing is that you write your controller code once, but Ninja handles the rendering via the matching rendering engine for you.
If the Accept type does not match you’ll get a bad request error response.
In the example above we saw that you’ll get a bad request error response when an incoming Accept content type does not match. But sometimes you want to nevertheless render something. That’s what fallbackContentType is for.
public Result getPerson() { Person person = new Person(); person.name = "Fritz Fritzensen"; return Results .ok() .supportedContentTypes( Result.APPLICATION_JSON, Result.APPLICATION_XML) .fallbackContentType(Result.APPLICATION_JSON); }
Extending the result via .fallbackContentType(Result.APPLICATION_JSON) means that we’ll always get a JSON response as fallback. That’s the case even when the Accept header was something completely unsupported by this controller.
If you do not set anything and just create a new result via e.g. Results.ok().render(myObject) the following rules apply:
You can always use a filter to set default values on all controller methods or controller classes.
The following filter for instance will set the results to handle JSON and XML and use JSON as fallback:
public class XmlAndJsonResult implements Filter { @Override public Result filter(FilterChain chain, Context context) { Result result = chain.next(context); return result .supportedContentTypes( Result.APPLICATION_JSON, Result.APPLICATION_XML) .fallbackContentType(Result.APPLICATION_JSON); } }
An annotated controller method then looks like:
@FilterWith(XmlAndJsonResult.class) public Result getPerson() { Person person = new Person(); person.name = "Fritz Fritzensen"; //The filter will set all content negotiation related stuff for us: return Results.ok(); }


To change my career path by learning to code. If I can do this, so can you.
Dear Company,
This is where I am going to map out my journey starting from basically knowing nothing about coding to finding a paid gig. I am also trying to understand the industry enough to be able to find what I like or enjoy, then learning the skills needed to be successful at it.
For keyboard and typing skills updates I use typing.com
Cryptocurrency with blockchain coding: Stellar Quest.
Courses and Education: GitHub, Khan Academy, Google, RedIt, Discord, Princeton coding course on Coursera.
Sincerely,
Collector72 Crypto


https://cybermap.kaspersky.com/
https://www.spamhaus.com/threat-map/
https://threatmap.fortiguard.com/
https://www.fireeye.com/cyber-map/threat-map.html
https://threatmap.bitdefender.com/
https://securitycenter.sonicwall.com/m/page/worldwide-attacks
https://threatbutt.com/map/


Running easyb
easyb can be invoked via:
Command line
easyb comes with a command line runner that takes the name of a particular behavior or story you wish to run. You can optionally pass in a few different flag options to output various report formats as well.
c:>java io.easyb.BehaviorRunner my/path/to/MyStory.groovy
If no additional arguments are specified, you'll see a report printed to System.out
that looks something
like this:
Running your story (Your.story)
Scenarios run: 1, Failures: 0, Pending: 0, Time Elapsed: 0.454 sec
1 behavior run with no failures
Want to run multiple behaviors or stories in a single run? Yep, easyb supports that too. Just pass multiple stories on the command line.
c:>java io.easyb.BehaviorRunner my/path/to/MyStory.groovy my/path/to/MySecondStory.groovy
Note, the runner doesn't care if you run a specification or a story-- they are run the same either way! Easy, eh?
easyb supports a few command line arguments -- namely, you can pass in a -ef
or a -e
for exception reporting. The -ef
filters an exception trace to remove a lot of the noise Groovy inserts in a call stack.
Story reporting via the command line
You can generate a story printout of an easyb story by passing in the -txtstory
flag as follows:
c:>java io.easyb.BehaviorRunner my/path/to/MyStory.groovy \
-txtstory ./target/mystory.txt
Note, the line break in the above example is for formatting purposes only.
HTML reporting via the command line
To produce an HTML report, which lists the status and summaries of all stories and specifications executed during an easyb run, type:
c:>java io.easyb.BehaviorRunner my/path/to/MyStory.groovy \
-html my/path/report.html
The path to and name of the report is optional as easyb will attempt to create a default one if neither is provided.
XML reporting via the command line
If you'd rather produce an XML report, just pass in the -xml
flag and provide a path where the xml
report should be written. For instance, using the same example from earlier, if you'd rather have an XML report,
simply type:
c:>java io.easyb.BehaviorRunner my/path/to/MyStory.groovy \
-xml my/path/report.xml
Note, the line break in the above example is for formatting purposes only.
Colored command line output
You can also show the executed stories by the command line, just pass in the -prettyprint
flag as follows:
$ java io.easyb.BehaviorRunner my/path/to/MyTestStory.groovy -prettyprint
Produces the output:
1 scenario executed, but status is failure! Total failures: 1
Story: myTest
scenario show colored output
given a string
then it should be null
given a number
then it shouldn't be 0 [FAILURE: expected values to differ but both were 0]
given an array
then it should be pending [PENDING]
Additional command line arguments
easyb offers the ability to see exception stack traces via two flags.
- For viewing exception traces, easyb offers two options:
-e
for a full exception stack trace-ef
for exception stack trace filtering — that is, a lot of the noise associated with a Groovy exception stack is filtered out
- You can run behavior tags by passing the
-tags
flag along with a single or comma-delimited list of tag names.
Ant
You can run your behaviors and stories via easyb's Ant task. It's easy:
- load the task (via Ant's
taskdef
)-- the class name isio.easyb.ant.BehaviorRunnerTask
- provide a location for a report (or series of reports) and then provide a
fileset
with the location(s) of your behaviors and stories
Defining the task looks like this:
<taskdef name="easyb" classname="io.easyb.ant.BehaviorRunnerTask">
<classpath>
<pathelement location="${lib.dir}/release/easyb-xx.jar"/>
</classpath>
</taskdef>
Running the task looks like:
<easyb>
<classpath>
<path refid="build.classpath" />
<pathelement path="target/classes" />
</classpath>
<report location="target/story.txt" format="txtstory" />
<behaviors dir="${mybehaviors.dir}">
<include name="**/*Story.groovy"/>
</behaviors>
</easyb>
The easyb
task takes a number of options including:
failureFile
-- path to file which will contain any failed behaviorsnoExecute
-- boolean, which allows you to generate a report without executing any storiestags
-- a single or comma-delimited list of tags to execute
Please note, report's have numerous formats, including html
, xml
, txtstory
, and txtspecification
.
Produces output:
[easyb] Running story listener story (StoryListener.story)
[easyb] Scenarios run: 2, Failures: 0, Pending: 0, Time Elapsed: 0.06 sec
[easyb] 2 total behaviors run with no failures
[easyb] easyb execution passed
BUILD SUCCESSFUL
Total time: 3 seconds
Failures
The point of having your behaviors run as part of your build is to notify you when they catch possible code problems. easyb also allows a user specified property to be set to true if the build fails.
This property is called failureProperty
and using it would look like this
<easyb failureProperty="easyb.failed">
That alone doesn't fail the build but puts the flexibility in your hands to fail it, print it or do nothing with it as you please. Here is a common example of using that property to fail a build:
<fail if="easyb.failed" message="Execution halted as behaviors failed"/>
Now when a behavior fails our build will halt with output like so:
[easyb] easyb is preparing to process 1 file(s)
[easyb] 9 behavior steps run , but status is failure! Total failures: 1
[easyb] Failure -> then the dealer should win in BlackjackStory.groovy
[easyb] VerificationException: expected lossss but was loss:
....
....
[easyb] specification failures detected!
[easyb] easyb execution FAILED
BUILD FAILED
/blah/blah/build.xml:75: easyb reported a failure
Total time: 3 seconds
Now you can be more confident that your build hasn't been broken by a change since you get instant feedback on behavior failures.
Story Printing
easyb embraces the idea that stories are a link between the business requirements and your code. To help use those stories when talking to your clients about requirements, easyb provides a way to print out just the stories without a lot of geeky code.
To print out a story report via Ant, simply create a report
element with its format
attribute set to txtstory
as follows:
<report location="target/stories.txt" format="txtstory"/>
Here is some sample output:
9 behavior steps executed successfully
Story: blackjack
scenario tie game when cards are dealt but dealer gets higher card
given a game a blackjack game and both players have a score of 10
when the dealer gets an Ace and you get a 10
then the dealer should win
scenario tie game when cards are dealt but player gets higher card
given a game a blackjack game and both players have a score of 10
when the dealer gets a 10 and you get an Ace
then the player should win
That looks like something business users (or management) could understand-- they might even be able to *gasp* write them!
Maven
You can also run your behaviors and stories via easyb's Maven plugin as well as generate HTML story reports. It's easy as fully explained on the maven-easyb-plugin site. The latest versions of the easyb Maven plugin are available at Maven central, so you shouldn't need to configure anything beyond the plugin in your POM.
If you like living on the edge (or just want the latest features and don't mind that there might be some rough edges), then you can point your POM to the easyb snapshot repository:
<project>
...
<repositories>
<repository>
<id>sonatype-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>sonatype-plugin-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
</pluginRepository>
</pluginRepositories>
...
</project>
IntelliJ
We have created an easyb plugin for IntelliJ that makes it super easyb to work with easyb specifications and to run and debug them. This plugin can be downloaded from the IntelliJ IDEA plug-in repository -- just check within your IDE's settings.
Eclipse
We have created an easyb plugin for Eclipse that makes it super easyb to work with easyb specifications and to run them.
Installing the plugin works as follows:
- Go to the Help menu and then select Software Updates...
- Hit the Add Site.. button and in the resulting dialog, for the location type: http://easyb.googlecode.com/svn/trunk/eclipse-plugins/io.easyb.eclipse.updatesite/
- Hit the Ok button
- Select the easyb Eclipse Update Site in the list box and then hit the Install... button


SUSPIRIA (1977) A Film Review by Ted Prigge Copyright 1998 Ted Prigge
Director: Dario Argento Writers: Dario Argento and Daria Nicolodi Starring: Jessica Harper, Stefania Casini, Alida Valli, Miguel Bosé, Barbara Magnolfi, Flavio Bucci, Barbara Magnolfi, Sussana Javicoli, Eva Axén, Joan Bennett, Rudolf Schündler, Udo Kier
I've seen "Suspiria" thrice in my life and during the most recent viewing, I noticed there's a story there. This could easily be my main point to be made against it, but "Suspiria" is so damn-well made that it is practically forgivable. In fact, one actually wonders if the point of the film is to diss all of the so-called "qualities" of story and characterization in favor of a film that is undeniably and totally about style and very little substance. It's as if the film has dropped all concept of storytelling just so it can create pure atmosphere. This isn't always the most admirable trait, but for this film, it just really, really works.
"Suspiria" was made in 1977 and seems to be the response by Italian horror director Dario Argento to contemporary American horror films like "Rosemary's Baby," "The Exorcist," and "The Omen," three films that dealt more with ideas of horror than actual horror experiences. Those three films were extremely successful, but all forgot that part of making a horror film is shocking and scaring the audience with scenes and events that are terrifying. As a response, Argento probably couldn't have made a better film.
As I said, there's a story here, but it's almost arbitrary (and rightfully so). Something about an American dancer named Suzy Bannion (Jessica Harper) who comes to Austria to go to an elite Ballet school, but discovers that the school holds a dark, ancient secret. What it is has to do with is a coven of witches, I think, but to be honest, it really doesn't matter. The second-to-last thing "Suspiria" is about is story. The last thing is characterization.
The reason for anyone to watch this film is because it is absolutely and utterly terrifying. Argento, always the better director than writer, has crafted a film here that leans almost totally on the former aspect, and is thus part criticism of then-modern American horror films, but more of an excercise in terror than anything else. From the first moments, when the credits begin and the music by the Goth-band Goblin explodes onto the soundtrack, Argento creates an atmosphere of sheer nervousness. Then the redundant but nerve-wrecking signature tune from the score starts up, like a child's tune played over and over again, getting more unnerrving every time it's played, and the films really opens.
The first 15 minutes deal with introducing Suzy, who's head-strong but shy in a way that's likable, and showing us her situation. She arrives at the airport. She tries to get a taxi. She gets it and arrives there only to see a woman run out, screaming something that goes practically unheard by Suzy, then runs off into the woods. Suzy tries to get into the school, but they won't let her, so she gets back in her taxi and drives off. Then the girl who ran out is viciously murdered while resting a at a friends'. This is all done in a straight segment of pure chills, during a stormy night, with low, ominous lighting, and with the score playing thunderously throughout.
These first 15 minutes are so good at setting up the mood, tone, and general feel of the film that it almost doesn't live up to it. But we see more anyway, as Suzy finally does get into the school, meets some friends (notably one who's been there long enough that she's become a bit paranoid), and Suzy begins to feel there's something evil going on in the school. People are being murdered or disappearing mysteriously. And Suzy begins to pluckishly explore until she finds out everything she needs to know.
It'd all be rather corny and laughable if played straight, but Argento saves it by the way he crafts it. His sets are baroque and nightmarish. His cinemtography is gorgeous, especially in widescreen where you can see the vastness of what has been shot. The colors are freakish and beautiful, and his lighting could not be better. In short, this is one of the best looking films of all time, right up there with such classics as Peter Greenaway's "The Cook, the Thief, His Wife, and Her Lover" and Terry Gilliam's "Brazil." I'm a supreme advocate of Black and White photography above color photography, but seeing a film like this almost makes me change my mind.
One could argue that this is all rather fake, and it is - that's the point. With "Suspiria," Argento has tried to remove all realism and create a totally artificial reality, in an effort to create a world that is so different from everything that exists now that it's creepy. "Suspiria" is a masterpiece of set design, cinematography, lighting, and musical scoring, each overwrought to the point that it's not at all real. This is a world that exists in a twisted dimension. With this in place, Argento plays on real fears we have, like not being able to negotiate our way out of a deadly situation, being alone in the dark with the unknown, and finding out so much that what we know can kill us.
He illustrates that with several incredible set pieces which feature sequences that are so drawn-out for terror that Hitchcock would have an orgasm. One scene in particular, including a man in a deserted square, is long and redundant and even anticlimactic, but when watching it is engrossing, hypnotic, and gradually frightening. These aren't cheap thrills Argento is obsessed with, but rather the experience of really being scared that he nails the way no other director has since "Psycho."
Matched with this is the shock value, where he really pushes the envelope. One scene features a woman who is attacked, stabbed repeatedly, then tossed out a glass tile and hung. Another features a woman who tumbles into a pit of barbed wire then slashed in the throat by an unseen assailant. And most disgustingly, thousands upon thousands upon thousands of maggotts are discovered in one scene to be seemingly everywhere (and with a laughable reason).
Who's the killer? What's the dark secret? These aren't totally revealed, only hinted at. And it's superfluous to answer those questions, since the entire point of making this film is being scared of what's out there but not able to be seen. But if there are any negative points to be made, it's that the film never really feels totally complete by the end. By the finale, we've learned very little, and that's all fine, but there still needs to be more. It ends as if it just ran out of ideas, and even if it does deliver what it needed to, it doesn't really feel like it should be over. Add a bit of distaste for dragging towards the middle, and you have a valid reason why this isn't the four-star film it very well could have been.
Nevertheless, "Suspiria" remains one of the most frightening films to ever be made, mostly because it has a director who isn't afraid to really overdramaticize his subject. What Argento has created here is an experience which grabs the audience from their seats, sucks them into the experience, and takes their breath away just by the way it looks and feels, as if it realizes that a film does not have to be about story and characters but rather about creating an experience. Further proof that this is a valid concept is by watching one of the films this is usually compared to, "Psycho." Is "Psycho" really about a guy who kills people dressed as his dead mom or is it about those long drawn-out sequences where we're glued to the screen by the way it pushes the envelope?  But nevertheless, "Suspiria" delivers just by the way it has been conceived, and well enough that even I, ol' jaded I, was pretty freaked out, not even though I didn't know what was going on, but rather because.
MY RATING (out of 4): ***1/2
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This class is meant to provide a way to do some basic security check so that the only variables passed through global means are those which we want.
It might seem a pain-in-the-ass to do this, but the reality is, if you don't know where your data is coming from, then you're probably at risk for all kinds of nasty issues down the road - especially from a security standpoint.
USAGE EXAMPLE // The array of keys we expect $expected = array('one', 'two', 'three', 'four');
// Instantiate a new cleanGlobals object $cleanGlobals = new cleanGlobals();
// clean the $_GET array, keeping only those // keys we expected to receive. $cleanGlobals->cleanGet($expected);
//Alternately, you can call the method statically (this is the preferred approach): cleanGlobals::cleanGet($expected); // The class methods are declared as public to facilitate either approach
End result: Given the array 'one', 'two', 'three', 'four' If the $_GET array had also received keys of 'foo' and 'bar' those keys (and their values, obviously) would be stripped from the array
***CAUTION!!!!*** The power of this class is also a potential source of bugs! These methods WILL unset any key which is not in your 'expected' array! This means you may chase your tail wondering why a superglobal isn't showing up
Also note: While this certainly enhances security, you must still validate, filter, and escape input as normal to ensure security.


You may use the following syntax for specifying post-registration actions:
# {{c.description | translate}}


My daughter an I have been watching this music video a lot on YouTube. Unfortunately the only version of it online is a 320x240 tape transfer. I decided to r...
Goodfuckingmorning world.
Today's update: the formula 1 team has been assembled. We have decided that we will not use typical titles, but descriptions that tell you the stuff we do. Like fighter pilots have Maverick, Iceman, Goose, Viper, we are going for those instead.
TwilightPunkster K6429-Mar-19 08:33 AM
The core team: Sam (Tech), Max (Creative), Willem (Numbers), Renzo (Promo), Miranda (Operations), Ryan (Growth). We now have 2 assisting game developers, Simon and Otgoo, our concept artist Nik and our media magician Kenny.
We made photos yesterday, we are working on the website, the reel of games and all the things that brings our profile out in the open.
Thanks to @Team Admin who have super duper supported us in getting started up, @Mylo helping out in the shadows, and not to fucking forget the 35K boost from @KomodoWorld and financial backing, support and endless energized @FishyGuts (Growth), we were able to secure the base of Komodore64. @Regnar even though not in k's, your 5 KMD for the fridge is just as important
Together we are strong.
 Let yourself wonder let your spirit find a way and reac...
KomodoWorld29-Mar-19 08:48 AM
exciting to see the growth of this platform, 2019 will be huge for Komodo
THE 16TH VENTURE OF JAMES BOND LICENCE TO KILL PLAYED BY THE BEST BOND TILL DATE TIMOTHY DALTON... HIS SECOND BUT THE LAST BOND HE PLAYED... PROBABLY THE TRU...
Now all the masters knows that you need the glow,
You need the glow, the glow to grow.
If you love to live, you live to love,
Hah, you got to move to the upper level.
Cos When you got the glow, there aint no stopping,
what you want to do.
its probably going to take 24 hours from now to finish our stuff. Quality matters.
Regnar29-Mar-19 03:14 PM
haha I'm definitely no whale, but I'm here for moral support
Steve Lee29-Mar-19 07:46 PM
@FishyGuts i have a subscription at : https://elements.envato.com/ if there's a wp or web template you want from there just let me know and i'll download and share it with you
Browse through thousands of stock photos, fonts and web templates. With unlimited downloads of all of our items, your project will be perfect in no time.
TwilightPunkster K6429-Mar-19 08:43 PM
No worries, we are moving things and working out the details
FishyGuts29-Mar-19 08:51 PM
Thank you @Steve Lee - I will keep that in mind for future. I think TPunk has someone working on an official site. Mine was just going to be VERY basic. Im glad he didn't like it
TwilightPunkster K6429-Mar-19 09:21 PM
its not that I didnt like it or at all appreciate the effort. We are working to get things streamlined, which just takes time; its the ocean that makes it difficult to sync properly. If it was up to me some people would fly in and we'd be super efficient, yet we have to be careful to burn money. We have funding and great things in the pipeline, but flights and residence are an investment and I rather spend the budget wisely.
Every dime counts.
FishyGuts29-Mar-19 10:56 PM
Haha. You’re funny. It was just a basic placeholder to tease people
Didn’t cost me a thing.
TwilightPunkster K6430-Mar-19 08:38 AM
Today I am on flight mode for 12 hours.  BBL.
5
2
TwilightPunkster K6431-Mar-19 10:56 AM
Alright. Great day. Daylight savings are funny, so amping up the velocity. Lotsa work has been done and much more needs to be done. So today a lot of work into the composition of the website, the reel - but also preparations for the upcoming week. Like freeing up my hands to prepare the operational things to run this all. Even though most things have been set up, the devil is in the detail.(edited)
Alright, smooth things. Finalizing the last parts for the website, reel and things. Meanwhile, pumped with sugar, getting a grip on all things that needs to be planned. Short update for now, next one will be amazing.
Animoca Brands is a global developer leveraging popular brands, gamification, A.I., blockchain, and mobile technology to make engaging apps ranging from games to fitness solutions.
TwilightPunkster K6403-Apr-19 06:42 AM
A lot of people are engaging to get games on the blockchain. Their advantage is having financial and entity things setup. Everyone loves that CAGR
The Game Devs from https://t.co/4jJ0BWD1lY are the best in the industry, a little insight, Fighters of the skies
@KomodoPlatform @twpunkster @0xca333 @CryptoRichYT @MrKomodoWorld #komodo $kmd https://t.co/zFDOllAgaW
As the fight against the monster is really already very good, but if it gets even better then komodore64.com will soon be known worldwide.
Aron“XuanLeeeeee“Goldberg04-Apr-19 04:36 PM
Can you make the Twitter profile picture a bit lighter, in the miniature view you only see black
TwilightPunkster K6404-Apr-19 06:48 PM
Alright, so Twitter set up, a bunch of videos made and making notes, plans and stuff at the same time. The office has finally got trashcans, and 2 months before we move to the new office. Meanwhile finalizing the Unity SDK, and making some plans for next week. We're going as fast as we can, but sadly there are only 72 hours in a single day. Be patient, we are moving forward.(edited)
1
1
1
1
2
Regnar04-Apr-19 07:54 PM
What's that red bull fridge fund looking like? :P
FishyGuts04-Apr-19 08:06 PM
!kmdtip @TwilightPunkster K64 9.99
KMD TipBotBOT04-Apr-19 08:06 PM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @TwilightPunkster K649.99 KMD
Regnar04-Apr-19 08:40 PM
hmm CodaCC would be a great addition, maybe even the standard, for blockchain based games. If it works that is.
Download a game, or play on a website, and have the entire blockchain downloaded in a few kb.
Regnar04-Apr-19 09:18 PM
@FishyGuts fish in counting that 9.99 towards the red bull fridge. 14.99 kmd now lol
Validating #gameplay, hits, damage and input with @KomodoPlatform's crypto-conditions are how competitive #gaming should be; Proof of Gameplay with #Komodo on #blockchain. https://t.co/7L0vZXD2k7
1
The videos are short, as they loop well on social media (also saves time)
TwilightPunkster K6405-Apr-19 03:23 PM
So today doing crazy much! First being half a fintechnician to learn laws and caveats. Parterships, friends and fans. But also going forward fast. Because not just regular games will be on Komodore64, the bets are on. You hear it, we got some news ... as if the music never stops.
Like rocking the boat wasn't enough, we're bringing #DiceBets to @KomodoPlatform - that's right! Roll dice, guess a card on the #blockchain. A project worked on by @M_eyse (our Creative Executive), which will be part of our reel of #betting #games powered by #Komodo
Together with @goldworld860, the producer of urban indie movie Karma The Movie https://t.co/sXpK7ZC9mB, we are bringing a street triple dice game Cee-Lo on the #blockchain with @KomodoPlatform. Gotta love $KMD. And with Karma The Game coming soon!
Even though missing out this year, but we are a great fan of #GrandNational, and how about a game that brings #eSports #gamblers and #blockchain together? Good thing we have plenty experts in the Netherlands to bring this powered by #Komodo game!
1
Mylo06-Apr-19 05:09 AM
sweet, cee lo is a lot of fun to play with friends
TwilightPunkster K6407-Apr-19 10:18 AM
A minor accident created some delay in things. But that wont stop the music. Komodore64 is moving forward. We are writing up a whitepaper, setting up a website and gearing everything into motion. With partnerships in place, the team working hard to make gaming ready for the next level. A lot hasn't been displayed yet, such as the look and feel of the Komodo for Unity SDK, which embeds the 6AME language to quickly develop games that are powered by Komodo blockchain. We are moving as fast as we can.
5
6
3
4
5
SHossain07-Apr-19 12:02 PM
lol... i was thinking to post the same
1
LocoMB07-Apr-19 12:21 PM
minecraft is huge- integrating a KMD based monetary aspect would be quite the thing!
TwilightPunkster K6407-Apr-19 12:37 PM
Already in the pipeline.
3
3
I got a voxel project somewhere, but I need to check out the legal stuff in regard to intellectual property
TwilightPunkster K6407-Apr-19 02:37 PM
I am moving updates and details about Komodore64 to #komodore64
1
Regnar07-Apr-19 06:22 PM
https://krunker.io is a cool block type game with rewards in it called KR. They aren't on chain or anything but I wonder if we could make something like that, or get them to use Komodo for their KR
I'm not sure of the specifics of how the SDK would help them integrate that, but would the SDK have tools for current games to easily switch current in-game credits to a blockchain based on?
TwilightPunkster K6407-Apr-19 08:04 PM
@Regnar migration tools are not part of the SDK, however every coder understands the process of refactoring. If they use Unity or Unreal, it should be painless. However, in a perfect world, we'd help them to migrate
1
The philosophy behind the SDK is that we enable game developers to develop games with Komodo with ease and turnkey. Thats why we are creating materials and guides too, kind of like Loom does, with less buzz, fuzz and more pragmatic. However that will take some time.
We're officially partnered with @kmdchainmakers who will provide technical and legal support #games made with @KomodoPlatform for #Komodore64. Another strong move towards a bright future and how we as ecosystem developers collaborate!
Guess who is on our advisory board too? No one else than @bennydoda01 from @redfoxlabs_io who doesn't need any further introduction. Currently occupied with #RFOX #ieo (read more: https://t.co/zZFlr0BBM4). The future is bright! #Komodo $KMD
We are organizing a #Komodore64 EXPO this summer. More details will follow next week, as we are working hard to make everything happen in time, with #Komodo powered #blockchain #games.
Games, #games and more games!  Levels on the #blockchain, and #ProofOfGameplay. Oh, and we are making it #multiplayer. https://t.co/9FpEHvh32u
We will be covered by @DailyChainNews about our advisory board members @bennydoda01 and @ajay1172, our partnership with @redfoxlabsio and the enthusiasm we have for @KomodoPlatform. A bit of history and a byte of the future. Thank you @alexlibertas for giving us some spo...
NEW ARTICLE/INTERVIEW
'Komodore64 – A New Approach to Gaming'
I speak to @komodoregames who are building out games on the @KomodoPlatform blockchain and are recently partnered with @redfoxlabs_io
$KMD $RFOX @2ndOldest @bennydoda01
#gaming #esports
https://t....
So much fun to bring back the days of #pointandclick and explore worlds. With @KomodoPlatform it is easy to store #NFT, and with the Komodo Gaming SDK, designing in #6AME makes it effortless to create unique items on the #blockchain!
So with less than 4 hours to prepare on a project not even three weeks old, yet already so far along, I did my best to relay what @komodoregames plans to do. In a short amount of time, ideas will become reality thanks to @KomodoPlatform @twpunkster @M_eyse @bennydoda01 an...
I’ll get a video of the talk and we can splice it down on time for promos and such.


Web Design &
Web Development
Hi I'm Nathan, a Website Developer from Central Victoria (Bendigo, Castlemaine).
I have 7+ years experience working in Graphic Design & Web Development.
My skills include HTML, CSS, Javascript, PHP, WordPress Theme & Plugin Development.
If you would like to work with me you can contact me on 0422 531 211 or natgearing@gmail.com