Introduction
Getting started with footwork is best done with a (mostly non-contrived) real application example.
In this tutorial we will be covering the creation of a TODO list application which mirrors the functionality found on the popular todomvc applications.
Specifically, in relation to footwork.js we will cover the following topics (over the course of the three tutorials in the series):
- Downloading dependencies and setting up an environment to use footwork.
- App instantiation.
- RequireJS usage for automatic dependency management.
- <viewModel> wrapping of HTML and 2-way binding.
- <custom-component> creation and usage.
- Broadcastable and receivable usage.
- Routing and state initialization.
- Inter-model state composition.
Getting Started
This tutorial has a companion repository on github which houses the source. It is recommended that you follow along and play with the code as you progress through the tutorial.
If you wish to follow along and run the tutorial code it is assumed you have a web server to host the tutorial on, and git installed. This tutorial will also not be covering the setup and configuration of your web server to host the files, it is assumed you are capable of handling that as well.
You can clone the tutorial repo with the following command:
git clone https://github.com/footworkjs/todo-tutorial.git
This repo has all of the assets needed to run the application. You may also notice it makes use of bower for package management and less.js for CSS. It is not necessary to know anything about (nor have installed) these in order to use this tutorial however they are both great tools worthy of checking out.
For reasons of brevity this tutorial will not cover the creation of the CSS/LESS, they are included for you in the repository. Also of note, the javascript runtime of LessCSS is used so that no re-compile step is required if/when you alter the LESS.
Prerequisites
This tutorial assumes a basic understanding of the following topics:
- HTML
- CSS
- Javascript
-
Knockout.js MVVM and data-binding *
NOTE*: It is helpful if you have an understanding of knockout MVVM and data-binding however you can probably get through this tutorial without having used them before.
If you have questions unanswered by this tutorial consult the footwork API documentation. If that does not answer your question, check the knockout.js documentation. Footwork at its core is just a superset of knockout, extended from the ko (knockout) object itself. Any undocumented features found in footwork are outlined there.
That said, this tutorial is written with the mindset of standing on its own and you likely won't need the reference material to complete it.
Setup
After cloning the repository you are ready to get started, begin by checking out the setup branch:
git checkout -f setup
This will set your workspace up with the base application structure and code. Open up the page in your browser and you won't see anything too interesting just yet...but we'll get to that.
The markup itself is also nothing special, just some basic HTML:
<!DOCTYPE html>

<form class="todo">

<input type="text" name="thingToDo" placeholder="What needs to be done?" autofocus>
<input type="submit" value="Add Item" class="button">
</form>

Nothing to do.

The only thing of note here is the

Now we refresh the page and expect to have our HTML todo form bound to the Todo viewModel. But instead we see an error in the console:
So this is telling us it can't find the method/property for the submit: binding on our viewModel, why? Well we forgot one critical detail, we need to tell footwork which viewModel to bind our HTML form with. We can do this by wrapping our form with the <viewModel> declarative syntax like so:

<viewModel module="TodoForm">
<form class="todo" data-bind="submit: submitForm">

<input type="text" name="thingToDo" data-bind="value: thingToDo" placeholder="What needs to be done?" autofocus>
<input type="submit" value="Add Item" class="button">
</form>
</viewModel>

Now footwork will know to load the TodoForm viewModel and what HTML to bind it with. Lets refresh the page once more...there is no error this time, great! Press the Add Item button, you should see the console spring to life:
Excellent, this lets us know our application is initializing properly and our form is binding to the viewModel...
Creating Todos
Now that our form is wired up to the viewModel, let's work on creating the actual Todo entries.
Looking at the HTML we see that the todo list is outside of the form. This list will contain not only the list of todo items...but any associated data and behavior related to that list. This listing is another good 'section' to make into a separate viewModel.
Start by wrapping the class="todo-list" element with a viewModel and add the appropriate bindings:

<viewModel module="TodoList">

</viewModel>

And now that our list markup has been created, we can make the TodoList viewModel it will bind against:
var TodoList = fw.viewModel({
namespace: 'TodoList',
autoRegister: true,
initialize: function() {
// stores the list of TodoItem entries
this.todos = fw.observableArray();
}
});
One more viewModel is needed...the one we will use for each individual TodoItem:
var TodoItem = fw.viewModel({
namespace: 'TodoItem',
initialize: function(thingToDo) {
// store the string text entered by user as thingToDo
this.thingToDo = fw.observable(thingToDo);
}
});
And finally, we add the

Now when we reload the page, nothing much happens still, typing something into the form and clicking submit simply issues the console message we saw prior. Lets fix that by making the TodoForm tell the TodoList to add a new entry when the user submits the form.
You might be wondering how that can be accomplished, the viewModels are after all completely separate and we don't even have a reference to them. We only have references to their constructor functions, which doesn't get us much. We can only create new instances with that, not get references to current instances. But fear not, namespace-based CQRS to the rescue!
In footwork, communication between viewModels/modules (and anything, really) is accomplished via the namespacing functionality. You may recall from earlier, the namespace: attribute we gave to each of our viewModel configurations. This namespace is used not only to autoRegister: the viewModel so footwork can know where to find it, but also to facilitate various forms of messaging, events, commands, etc.
It is possibly easier to grasp with an example, so lets go ahead and add the necessary code we need to have the TodoForm tell the TodoList it should add a new TodoItem.
First we add code to TodoForm.js which causes the form to tell the TodoList to add a new item when the form is submitted:
var TodoForm = fw.viewModel({
namespace: 'TodoForm',
autoRegister: true,
initialize: function() {
this.thingToDo = fw.observable();
// create the namespace 'channel' we will use to talk to the TodoList
this.todoListNamespace = fw.namespace('TodoList');
this.submitForm = function() {
// The user wishes to add a todo item, lets tell the TodoList what it is
this.todoListNamespace.publish('newItem', this.thingToDo());
// clear out the text box so the user can type a new entry
this.thingToDo('');
};
}
});
What exactly is happening here? Well the first thing of note is the todoListNamespace property being created on the viewModel. The namespace instance created here via fw.namespace() can be thought of as a way to send and receive messages/commands/etc to/from the TodoList viewModel.
The other important aspect of this code is the todoListNamespace.publish() call. This method call is publishing a message to the TodoList passing along the new todo item the user has typed in.
Ok so now our TodoForm is sending the message to the TodoList, lets modify the TodoList so that it can receive (listen for) that message and create new TodoItem entries based on the data passed to it.
We add the $namespace.subscribe() call to subscribe to newItem messages:
var TodoList = fw.viewModel({
namespace: 'TodoList',
autoRegister: true,
initialize: function() {
var self = this; // create a reference to this viewModel we can use inside of the callback
// stores the list of TodoItem entries
this.todos = fw.observableArray();
// listen for any 'newItem' messages broadcast on our namespace.
this.$namespace.subscribe('newItem', function(thingToDo) {
// new thingToDo was received, lets create a new TodoItem based on it
self.todos.push( new TodoItem(thingToDo) );
});
}
});
And lastly, note the this.$namespace.subscribe() call. This simply adds a callback for any 'newItem' messages that are broadcast for the viewModels $namespace ('TodoList' in this case). This callback pushes a new TodoItem() onto the todos observable array. If all is going well when you refresh the page, type something into the form, and then hit enter you should see a new todo entry:
Now we have the very basic functionality of being able to create new todo items and having them rendered to the page. You might be thinking that viewModels are great and all, but at this rate we will be writing a single page of HTML to represent our entire app. Thats not too modular or robust is it?
It certainly isn't. In the next section we learn how to split apart our html into separate templates and couple them along with their respective viewModel to create fully encapsulated reusable (and testable) components.
Components
Our viewModels are nicely separated from each other, wouldn't it be nice to split apart the HTML in the same way? Maybe combine the two into a reusable package? Components let you do just that.
You may have heard about them, and how future browsers will hopefully support them and enable a new world of reusable pieces you can just throw around at will. Well footwork (with the help of knockout) provides exactly that. Expressive semantic custom elements, testable and reusable by simply declaring them in your HTML. Did I mention you can nest any number of both viewModel or other components within them as well? Even entire applications?
Lets start by componentizing the TodoForm, after all maybe in the future we might want to reuse this form on a different page or possibly in multiple places on the same page. Thankfully, we already have our viewModel TodoForm in its own separate file...no additional work needs to be done there just yet.
We begin by pulling out the TodoForm HTML and replacing it with a declarative custom element (<todoform></todoform> in this case, although it can be anything you want that is a non-standard tagName. Valid letters include lower-case letters and a hyphen).
Replace the form with our custom element:

<todoform></todoform>
<viewModel module="TodoList">

Now, where do we put the HTML for the form? In this step of the tutorial we will be registering the component directly with footwork, and for that to be accomplished we need the form embedded in a string variable. Note that it is not recommended to do it this way, and in the next section we will be covering how to convert this (and our viewModel) into their AMD/RequireJS counterparts so that footwork can load them automatically as needed for you.
Register both the template and viewModel with footwork:
var TodoFormHTML = '<form class="todo" data-bind="submit: submitForm">\

\
<input type="text" name="thingToDo" data-bind="value: thingToDo" placeholder="What needs to be done?" autofocus>\
<input type="submit" value="Add Item" class="button">\
</form>';
fw.components.register('todoform', {
viewModel: TodoForm,
template: TodoFormHTML
});
// tell footwork to startup and begin binding
fw.start();
Having done that, if we reload the page we should not see any error. Now lets try typing in a new todo item, then hit enter, you should see a new todo on the page:
Now our application is using a custom element to lookup, compose, and insert our component for us. In the next section we find out how to make this more modular by separating our our HTML into separate files and loading it all dynamically via RequireJS/AMD.
AMD / RequireJS
Converting our viewModels and components into RequireJS/AMD modules is very beneficial. It allows footwork to automatically load them for you when needed, as well as any dependencies they may have. It also makes it easy for us to place our template HTML in its own separate file. This helps us keep both our HTML (markup and bindings) and javascript (business logic) very modularized and separated. Even further, we can still cache any viewModels/components that we don't want the client to wait to download if we end up building the javascript before deploying into production (this tutorial will not cover that portion).
In this step we convert our application to use RequireJS and enable footwork to load our assets (both viewModels, and components) dynamically for us at runtime.
In order to do this we need to do the following things:
- Pull the todo form HTML template out of app.js and put it into its own file.
- Convert our viewModels into RequireJS/AMD javascript modules.
- Convert our app.js into a RequireJS/AMD main module.
- Tell footwork where our viewModels, and components (viewModel + template) are located.
- Add the RequireJS main script tag to our index.html
We start by pulling our form HTML template out of app.js and placing it in its own file:
<form class="todo" data-bind="submit: submitForm">

<input type="text" name="thingToDo" data-bind="value: thingToDo" placeholder="What needs to be done?" autofocus>
<input type="submit" value="Add Item" class="button">
</form>
Then we turn our viewModels into RequireJS/AMD modules (TodoForm shown, see the repo for TodoList and TodoItem):
define(['footwork'],
function(fw) {
return fw.viewModel({
namespace: 'TodoForm',
autoRegister: true,
initialize: function() {
// The observable which stores the current thingToDo form text
this.thingToDo = fw.observable();
// create the namespace 'channel' we will use to talk to the TodoList
this.todoListNamespace = fw.namespace('TodoList');
this.submitForm = function() {
// The user wishes to add a todo item, lets tell the TodoList what it is
this.todoListNamespace.publish('newItem', this.thingToDo());
// clear out the text box so the user can type a new entry
this.thingToDo('');
};
}
});
}
);
Next, lets convert our app.js file into a RequireJS 'main' module:
/**
* Configure RequireJS, telling it where the text plugin (used to load templates) and
* footwork are located.
*/
requirejs.config({
baseUrl: '/',
paths: {
"text": "bower_components/requirejs-text/text",
"footwork": "bower_components/footwork/dist/footwork-all-history"
}
});
require([ 'footwork' ],
function(fw) {
// tell footwork to startup and begin binding
fw.start();
}
);
Now we have to tell footwork where it can find our component and viewModel assets before the app is started:
// ...
require(['footwork'],
function(fw) {
// Tell footwork where it can find the TodoList viewModel.
fw.viewModels.registerLocation('TodoList', 'scripts/viewModels/');
/**
* Here we provide the entire filename to footwork because the lowercase
* 'todoform' does not match the file names on disk.
*/
fw.components.registerLocation('todoform', {
viewModel: 'scripts/viewModels/TodoForm', // loads scripts/viewModels/TodoForm.js
template: 'scripts/templates/TodoForm' // loads scripts/templates/TodoForm.html
});
// tell footwork to startup and begin binding
fw.start();
}
);
NOTE: For full documentation on how you can specify where these assets are located take a look at the components AMD and viewModel AMD sections of the API docs.
By using fw.components.registerLocation() and fw.viewModels.registerLocation() we are able to tell footwork where it can find our viewModels and component (viewModel + template) assets.
And finally, we pull out our previous

If we reload the page and try to enter another todo, it should work exactly like before. The only difference is that footwork is now loading the viewModels/components automatically for us. If we were to not include the <todoform> custom element then that component (and its dependencies) would not be downloaded (the same is also true for viewModel wrappers).
Thats it for the basic todo application...that wasn't too difficult, was it? In the follow-up Routing Tutorial we take a look at how we can add a login page and some filters to our application.


{{listing.listing_title}} {{listing.game_platform}}{{listing.purchase_price}} (Select for more details)


For the last few days, I have been working on switching u-boot based bootloader to UEFI based boot loader for a new platform at work. I found out it is useful to able to boot manually with kernel, dtb, initramfs. By doing this, if the thing doesn’t work, we can change any one of them to identify which one has issue.
First you need prepare kernel image as “Image” format, device tree blob (dtb file), and initramfs.
When all three images are ready, and loaded them into USB pendrive, which needs to be in FAT file system.
Cautions: The board needs to have UEFI boot loader image flashed in SPI flash.
If it is running u-boot, then the bootloader image (ATF + UEFI shell + any UEFI Applications) can be burn into SPI flash using u-boot command "bubt".
Typically you want to first verify the new UEFI bootloader is working ok before burn into flash, this can be done by running from DRAM, here is an example: (*.fd file is UEFI binary to run, *.bin is ATF+UEFI binary)
Marvell>> usb start
...
Marvell>> fatls usb 0:1
06/29/2017 09:38 4,083 armada-7040.dtsi
06/29/2017 09:37 23,880 armada-7040-sparrow-v1.dtb
06/29/2017 09:38 5,952 armada-7040-sparrow-v1.dts
06/29/2017 10:21 23,876 armada-7040-sparrow-v2.dtb
06/29/2017 09:59 13,362,176 Image.440.eval
04/14/2017 19:15 13,428,224 Image.anil
04/19/2017 00:59 13,006,336 image.tsn.weweng
04/14/2017 19:15 12,651,334 initramfs.anilURam
04/19/2017 00:43 20,024,514 initramfs0328.uRam
07/17/2017 15:01 20,024,450 initramfs-0328.cpio.gz
06/26/2017 12:15 1,403,344 sparrow-u-bootloader-img.bin.S0
07/19/2017 12:47 1,217,816 flash-image-17.06-u-boot.bin
07/19/2017 18:14 1,048,576 uefi-img-cisco1.fd
07/20/2017 09:30 1,048,576 uefi-img-efi-shell.fd
07/20/2017 10:02 1,606,320 uefi-bootloader-efi-shell.bin
07/20/2017 13:26 1,048,576 ARMADA_EFI.fd
07/20/2017 17:27 393,216 CiscoRommon1.efi
# load UEFI binary into DRAM at address 0x2000000
Marvell>> fatload usb 0:1 0x2000000 uefi-img-efi-shell.fd
# relocate to address 0
Marvell>> cp 0x2000000 0 0x100000
# run UEFI bootloader from address 0
Marvell>> go 0
# after verify it boots to UEFI shell, then it can be burn into SPI chip:
# first reboot the box back to u-boot prompt
Marvell>> usb start
Marvell>> fatls usb 0:1
# Note this time you use the *.bin image which has ATF + UEFI together.
Marvell>> bubt uefi-bootloader-efi-shell.bin spi usb
# after completes, it is ready to reboot and get into UEFI shell
If it is running an old version UEFI boot loader and needs to be upgraded, using "fupdate" command.

# After it completes, reboot the box to UEFI shell
Shell:\> fs0:
FS0:\> cls
FS0:\> dir
Directory of: FS0:\
07/02/2017 10:49 2,831 linux-login-blogs.txt
06/28/2017 16:42 <DIR> 32,768 bringup-june26
06/29/2017 09:38 4,083 armada-7040.dtsi
06/29/2017 09:37 23,880 armada-7040-sparrow-v1.dtb
06/29/2017 09:38 5,952 armada-7040-sparrow-v1.dts
06/29/2017 10:21 23,876 armada-7040-sparrow-v2.dtb
06/29/2017 09:59 13,362,176 Image.440.eval
04/14/2017 19:15 13,428,224 Image.anil
04/19/2017 00:59 13,006,336 image.tsn.weweng
04/14/2017 19:15 12,651,334 initramfs.anilURam
04/19/2017 00:43 20,024,514 initramfs0328.uRam
07/17/2017 15:01 20,024,450 initramfs-0328.cpio.gz
06/26/2017 12:15 1,403,344 sparrow-u-bootloader-img.bin.S0
07/19/2017 12:47 1,217,816 flash-image-17.06-u-boot.bin
07/19/2017 18:14 1,048,576 uefi-img-cisco1.fd
07/20/2017 09:30 1,048,576 uefi-img-efi-shell.fd
07/20/2017 10:02 1,606,320 uefi-bootloader-efi-shell.bin
07/20/2017 13:26 1,048,576 ARMADA_EFI.fd
07/20/2017 17:27 393,216 CiscoRommon1.efi
07/20/2017 17:43 393,216 CiscoRommon2.efi
FS0:\> Image.440.eval dtb = armada-7040-sparrow-v2.dtb initrd = initramfs-0328.cpio.gz console = ttyS0,115200 emergency init = /bin/bash root = /dev/ram0 rw maxloop = 64
EFI stub: Booting Linux Kernel...
ConvertPages: range 7F280000 - 7F28FFFF covers multiple entries
EFI stub: Using DTB from command line
EFI stub: Exiting boot services and installing virtual address map...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.51-armada-17.02.2 ( weweng@sjc-asr-124) ( gcc version 5.3.0 ( GCC) ) #1 SMP Fri Apr 7 11:46:27 PDT 2017
[ 0.000000] Boot CPU: AArch64 Processor [ 410fd081]
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] EFI v2.60 by EDK II
[ 0.000000] efi: SMBIOS 3.0= 0x77da0000 ACPI 2.0= 0x6e760000
[ 0.000000] cma: Reserved 128 MiB at 0x0000000078000000
[ 0.000000] pkg not found or empty
[ 0.000000] - disabling package support
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.0 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] PERCPU: Embedded 15 pages/cpu @ffffffc0778c1000 s24472 r8192 d28776 u61440
[ 0.000000] Detected PIPT I-cache on CPU0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 515088
[ 0.000000] Kernel command line: Image.440.eval dtb = armada-7040-sparrow-v2.dtb initrd = initramfs-0328.cpio.gz console = ttyS0,115200 emergency init = /bin/bash root = /dev/ram0 rw maxloop = 64
[ 0.000000] log_buf_len individual max cpu contribution: 4096 bytes
[ 0.000000] log_buf_len total cpu_extra contributions: 12288 bytes
[ 0.000000] log_buf_len min size: 16384 bytes
[ 0.000000] log_buf_len: 32768 bytes
[ 0.000000] early log buf free: 14520( 88%)
[ 0.000000] PID hash table entries: 4096 ( order: 3, 32768 bytes)
[ 0.000000] Dentry cache hash table entries: 262144 ( order: 9, 2097152 bytes)
[ 0.000000] Inode-cache hash table entries: 131072 ( order: 8, 1048576 bytes)
[ 0.000000] software IO TLB [ mem 0x71500000-0x75500000] ( 64MB) mapped at [ ffffffc071100000-ffffffc0750fffff]
[ 0.000000] Memory: 1819492K/2093056K available ( 8820K kernel code, 553K rwdata, 3216K rodata, 452K init, 293K bss, 142492K reserved, 131072K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vmalloc : 0xffffff8000000000 - 0xffffffbdbfff0000 ( 246 GB)
[ 0.000000] vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000 ( 8 GB maximum)
[ 0.000000] 0xffffffbdc0010000 - 0xffffffbdc2000000 ( 31 MB actual)
[ 0.000000] fixed : 0xffffffbffa7fd000 - 0xffffffbffac00000 ( 4108 KB)
[ 0.000000] PCI I/O : 0xffffffbffae00000 - 0xffffffbffbe00000 ( 16 MB)
[ 0.000000] modules : 0xffffffbffc000000 - 0xffffffc000000000 ( 64 MB)
[ 0.000000] memory : 0xffffffc000000000 - 0xffffffc07fc00000 ( 2044 MB)
[ 0.000000] .init : 0xffffffc000c43000 - 0xffffffc000cb4000 ( 452 KB)
[ 0.000000] .text : 0xffffffc000080000 - 0xffffffc000c43000 ( 12044 KB)
[ 0.000000] .data : 0xffffffc000cb4000 - 0xffffffc000d3e400 ( 553 KB)
[ 0.000000] SLUB: HWalign = 64, Order = 0-3, MinObjects = 0, CPUs = 4, Nodes = 1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 64.
[ 0.000000] RCU restricting CPUs from NR_CPUS = 64 to nr_cpu_ids = 4.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf = 64, nr_cpu_ids = 4
[ 0.000000] NR_IRQS:64 nr_irqs:64 0
[ 0.000000] GICv2m: Overriding V2M MSI_TYPER ( base:160, num:32)
[ 0.000000] GICv2m: Node v2m: range[0xf0280000:0xf0280fff], SPI[160:192]
[ 0.000000] GICv2m: Overriding V2M MSI_TYPER ( base:192, num:32)
[ 0.000000] GICv2m: Node v2m: range[0xf0290000:0xf0290fff], SPI[192:224]
[ 0.000000] GICv2m: Overriding V2M MSI_TYPER ( base:224, num:32)
[ 0.000000] GICv2m: Node v2m: range[0xf02a0000:0xf02a0fff], SPI[224:256]
[ 0.000000] GICv2m: Overriding V2M MSI_TYPER ( base:256, num:32)
[ 0.000000] GICv2m: Node v2m: range[0xf02b0000:0xf02b0fff], SPI[256:288]
[ 0.000000] mvebu-pic: registered with 19 irqs
[ 0.000000] mvebu-sei: registered with 64 irqs
[ 0.000000] Architected cp15 timer( s) running at 25.00MHz ( phys) .
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns:<PHONE_NUMBER>46 ns
[ 0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every<PHONE_NUMBER>100ns
[ 0.000117] Console: colour dummy device 80x25
[ 0.000130] Calibrating delay loop ( skipped) , value calculated using timer frequency.. 50.00 BogoMIPS ( lpj = 100000)
[ 0.000137] pid_max: default: 32768 minimum: 301
[ 0.000174] Security Framework initialized
[ 0.000195] Mount-cache hash table entries: 4096 ( order: 3, 32768 bytes)
[ 0.000199] Mountpoint-cache hash table entries: 4096 ( order: 3, 32768 bytes)
[ 0.000596] Initializing cgroup subsys memory
[ 0.000613] Initializing cgroup subsys devices
[ 0.000619] Initializing cgroup subsys freezer
[ 0.000625] Initializing cgroup subsys net_cls
[ 0.000630] Initializing cgroup subsys hugetlb
[ 0.000652] Syspage size 3832 bytes, 300 task entries
[ 0.001235] Remapping and enabling EFI services.
[ 0.001242] EFI remap 0x0000000077810000 =><PHONE_NUMBER>000000
[ 0.001323] EFI remap 0x0000000077d20000 =><PHONE_NUMBER>3e0000
[ 0.001377] EFI remap 0x00000000f2284000 =><PHONE_NUMBER>6a4000
[ 0.001390] ASID allocator initialised with 65536 entries
[ 0.002085] Detected PIPT I-cache on CPU1
[ 0.002119] CPU1: Booted secondary processor [ 410fd081]
[ 0.002316] Detected PIPT I-cache on CPU2
[ 0.002345] CPU2: Booted secondary processor [ 410fd081]
[ 0.002536] Detected PIPT I-cache on CPU3
[ 0.002555] CPU3: Booted secondary processor [ 410fd081]
[ 0.002591] Brought up 4 CPUs
[ 0.002603] SMP: Total of 4 processors activated.
[ 0.002611] CPU: All CPU( s) started at EL2
[ 0.002954] devtmpfs: initialized
[ 0.005912] SMBIOS 3.0.0 present.
[ 0.006035] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:<PHONE_NUMBER>100000 ns
[ 0.006046] futex hash table entries: 1024 ( order: 5, 131072 bytes)
[ 0.007836] xor: measuring software checksum speed
[ 0.044003] 8regs : 4819.000 MB/sec
[ 0.084028] 8regs_prefetch: 4216.000 MB/sec
[ 0.124055] 32regs : 5523.000 MB/sec
[ 0.164082] 32regs_prefetch: 4580.000 MB/sec
[ 0.164085] xor: using function : 32regs ( 5523.000 MB/sec)
[ 0.164101] pinctrl core: initialized pinctrl subsystem
[ 0.164680] NET: Registered protocol family 16
[ 0.176106] cpuidle: using governor ladder
[ 0.186213] cpuidle: using governor menu
[ 0.186335] vdso: 2 pages ( 1 code @ ffffffc000cb9000, 1 data @ ffffffc000cb8000)
[ 0.186353] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.200479] DMA: preallocated 256 KiB pool for atomic allocations
[ 0.200561] Serial: AMBA PL011 UART driver
[ 0.289141] raid6: int64x1 gen() 844 MB/s
[ 0.357179] raid6: int64x1 xor() 637 MB/s
[ 0.425243] raid6: int64x2 gen() 1325 MB/s
[ 0.493288] raid6: int64x2 xor() 1026 MB/s
[ 0.561324] raid6: int64x4 gen() 1687 MB/s
[ 0.629390] raid6: int64x4 xor() 1064 MB/s
[ 0.697426] raid6: int64x8 gen() 1883 MB/s
[ 0.765481] raid6: int64x8 xor() 1046 MB/s
[ 0.833518] raid6: neonx1 gen() 1617 MB/s
[ 0.901581] raid6: neonx1 xor() 985 MB/s
[ 0.969628] raid6: neonx2 gen() 2494 MB/s
[ 1.037683] raid6: neonx2 xor() 1600 MB/s
[ 1.105722] raid6: neonx4 gen() 3232 MB/s
[ 1.173777] raid6: neonx4 xor() 1990 MB/s
[ 1.241813] raid6: neonx8 gen() 3124 MB/s
[ 1.309861] raid6: neonx8 xor() 2109 MB/s
[ 1.309865] raid6: using algorithm neonx4 gen() 3232 MB/s
[ 1.309868] raid6: .... xor() 1990 MB/s, rmw enabled
[ 1.309871] raid6: using intx1 recovery algorithm
[ 1.309984] ACPI: Interpreter disabled.
[ 1.310079] reg-fixed-voltage usb3-gpio-vbus: could not find pctldev for node /cpn-110-master/config-space/pinctrl@440000/xhci0-vbus-pins, deferring probe
[ 1.310138] gpio-regulator ap806:config-space:regulator@0: No 'states' property found
[ 1.310145] gpio-regulator: probe of ap806:config-space:regulator@0 failed with error -22
[ 1.310312] arm-smmu f0100000.iommu: probing hardware configuration...
[ 1.310317] arm-smmu f0100000.iommu: SMMUv2 with:
[ 1.310322] arm-smmu f0100000.iommu: stage 1 translation
[ 1.310326] arm-smmu f0100000.iommu: stage 2 translation
[ 1.310329] arm-smmu f0100000.iommu: nested translation
[ 1.310334] arm-smmu f0100000.iommu: coherent table walk
[ 1.310339] arm-smmu f0100000.iommu: stream matching with 16 register groups , mask 0x7fff
[ 1.310344] arm-smmu f0100000.iommu: 8 context banks ( 0 stage-2 only)
[ 1.310350] arm-smmu f0100000.iommu: Supported page sizes: 0x60211000
[ 1.310354] arm-smmu f0100000.iommu: Stage-1: 48-bit VA -> 48-bit IPA
[ 1.310358] arm-smmu f0100000.iommu: Stage-2: 48-bit IPA -> 48-bit PA
[ 1.310402] arm-smmu f0100000.iommu: registered 4 master devices
[ 1.310817] iommu: Adding device f2500000.usb3 to group 0
[ 1.310832] iommu: Adding device f26a0000.cpxor0 to group 1
[ 1.310845] iommu: Adding device f26c0000.cpxor1 to group 2
[ 1.311159] vgaarb: loaded
[ 1.311289] SCSI subsystem initialized
[ 1.311473] usbcore: registered new interface driver usbfs
[ 1.311500] usbcore: registered new interface driver hub
[ 1.311532] usbcore: registered new device driver usb
[ 1.311805] pps_core: LinuxPPS API ver. 1 registered
[ 1.311809] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti<EMAIL_ADDRESS>[ 1.311820] PTP clock support registered
[ 1.312519] clocksource: Switched to clocksource arch_sys_counter
[ 1.312764] pnp: PnP ACPI: disabled
[ 1.316183] NET: Registered protocol family 2
[ 1.316432] TCP established hash table entries: 16384 ( order: 5, 131072 bytes)
[ 1.316496] TCP bind hash table entries: 16384 ( order: 6, 262144 bytes)
[ 1.316624] TCP: Hash tables configured ( established 16384 bind 16384)
[ 1.316682] UDP hash table entries: 1024 ( order: 3, 32768 bytes)
[ 1.316699] UDP-Lite hash table entries: 1024 ( order: 3, 32768 bytes)
[ 1.316791] NET: Registered protocol family 1
[ 1.316936] RPC: Registered named UNIX socket transport module.
[ 1.316941] RPC: Registered udp transport module.
[ 1.316944] RPC: Registered tcp transport module.
[ 1.316948] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.317087] Trying to unpack rootfs image as initramfs...
[ 1.317087] initrd_start 0xffffffc01ece0000 initrd_end 0xffffffc01fff8c82 size 20024450
[ 1.961786] Freeing initrd memory: 19552K ( ffffffc01ece0000 - ffffffc01fff8000)
[ 1.962065] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[ 1.962617] kvm [ 1]: 8-bit VMID
[ 1.962622] kvm [ 1]: Hyp mode initialized successfully
[ 1.962705] kvm [ 1]: interrupt-controller@f0240000 IRQ7
[ 1.962826] kvm [ 1]: timer IRQ5
[ 1.964298] audit: initializing netlink subsys ( disabled)
[ 1.964323] audit: type = 2000 audit( 1.956:1) : initialized
[ 1.964719] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 1.968686] VFS: Disk quotas dquot_6.6.0
[ 1.968777] VFS: Dquot-cache hash table entries: 512 ( order 0, 4096 bytes)
[ 1.969488] squashfs: version 4.0 ( 2009/01/31) Phillip Lougher
[ 1.970057] NFS: Registering the id_resolver key type
[ 1.970087] Key type id_resolver registered
[ 1.970091] Key type id_legacy registered
[ 1.970119] jffs2: version 2.2. ( NAND) Â© 2001-2006 Red Hat, Inc.
[ 1.970363] fuse init ( API version 7.23)
[ 1.970583] 9p: Installing v9fs 9p2000 file system support
[ 1.971146] async_tx: api initialized ( async)
[ 1.971241] Block layer SCSI generic ( bsg) driver version 0.4 loaded ( major 250)
[ 1.971249] io scheduler noop registered
[ 1.971378] io scheduler cfq registered ( default)
[ 1.971940] armada-ap806-pinctrl f06f4000.pinctrl: registered pinctrl driver
[ 1.972366] armada-cp110-pinctrl f2440000.pinctrl: registered pinctrl driver
[ 1.972581] irq: Cannot allocate irq_descs @ IRQ38, assuming pre-allocated
[ 1.972768] irq: Cannot allocate irq_descs @ IRQ58, assuming pre-allocated
[ 1.972911] irq: Cannot allocate irq_descs @ IRQ90, assuming pre-allocated
[ 1.973059] Ethernet Channel Bonding Driver: v3.7.1 ( April 27, 2011)
[ 1.974061] libphy: Fixed MDIO Bus: probed
[ 1.974070] tun: Universal TUN/TAP device driver, 1.6
[ 1.974073] tun: ( C) 1999-2004 Max Krasnyansky<EMAIL_ADDRESS>[ 1.974174] libphy: mdio_driver_register: mv88e6085
[ 1.974278] libphy: orion_mdio_bus: probed
[ 1.974371] libphy: Marvell XSMI MDIO Bus: probed
[ 1.974449] sky2: driver version 1.30
[ 1.974607] e1000e: Intel( R) PRO/1000 Network Driver - 3.2.6-k
[ 1.974610] e1000e: Copyright( c) 1999 - 2015 Intel Corporation.
[ 1.974640] igb: Intel( R) Gigabit Ethernet Network Driver - version 5.3.0-k
[ 1.974643] igb: Copyright ( c) 2007-2014 Intel Corporation.
[ 1.974671] igbvf: Intel( R) Gigabit Virtual Function Network Driver - version 2.0.2-k
[ 1.974674] igbvf: Copyright ( c) 2009 - 2012 Intel Corporation.
[ 1.974701] ixgbe: Intel( R) 10 Gigabit PCI Express Network Driver - version 4.2.1-k
[ 1.974704] ixgbe: Copyright ( c) 1999-2015 Intel Corporation.
[ 1.974739] ixgbevf: Intel( R) 10 Gigabit PCI Express Virtual Function Network Driver - version 2.12.1-k
[ 1.974742] ixgbevf: Copyright ( c) 2009 - 2012 Intel Corporation.
[ 1.974768] ixgb: Intel( R) PRO/10GbE Network Driver - version 1.0.135-k2-NAPI
[ 1.974771] ixgb: Copyright ( c) 1999-2008 Intel Corporation.
[ 1.974910] usbcore: registered new interface driver asix
[ 1.974945] usbcore: registered new interface driver ax88179_178a
[ 1.974968] usbcore: registered new interface driver cdc_ether
[ 1.974997] usbcore: registered new interface driver smsc75xx
[ 1.975019] usbcore: registered new interface driver net1080
[ 1.975042] usbcore: registered new interface driver cdc_subset
[ 1.975064] usbcore: registered new interface driver zaurus
[ 1.975099] usbcore: registered new interface driver cdc_ncm
[ 1.975516] mv_xor_v2 f0400000.xor0: Marvell Version 2 XOR driver
[ 1.977402] mv_xor_v2 f0420000.xor1: Marvell Version 2 XOR driver
[ 1.978995] mv_xor_v2 f0440000.xor2: Marvell Version 2 XOR driver
[ 1.980614] mv_xor_v2 f0460000.xor3: Marvell Version 2 XOR driver
[ 1.982208] mv_xor_v2 f26a0000.cpxor0: Marvell Version 2 XOR driver
[ 1.982283] mv_xor_v2 f26c0000.cpxor1: Marvell Version 2 XOR driver
[ 1.983834] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 1.984486] console [ ttyS0] disabled
[ 2.004652] f0512000.serial: ttyS0 at MMIO 0xf0512000 ( irq = 13, base_baud = 12500000) is a 16550A
[ 3.317096] console [ ttyS0] enabled
[ 3.321121] omap_rng f2760000.trng: initialization failed.
[ 3.326752] Unable to detect cache hierarchy from DT for CPU 0
[ 3.333009] brd: module loaded
[ 3.338449] loop: module loaded
[ 3.342529] VFIO - User Level meta-driver version: 0.3
[ 3.350074] ehci_hcd: USB 2.0 'Enhanced' Host Controller ( EHCI) Driver
[ 3.356648] ehci-pci: EHCI PCI platform driver
[ 3.361138] ehci-platform: EHCI generic platform driver
[ 3.366453] ehci-orion: EHCI orion driver
[ 3.370537] ohci_hcd: USB 1.1 'Open' Host Controller ( OHCI) Driver
[ 3.376756] ohci-pci: OHCI PCI platform driver
[ 3.381247] ohci-platform: OHCI generic platform driver
[ 3.386773] usbcore: registered new interface driver usb-storage
[ 3.392859] usbcore: registered new interface driver usbserial
[ 3.398997] mousedev: PS/2 mouse device common for all mice
[ 3.405025] armada38x-rtc f2284000.rtc: rtc core: registered f2284000.rtc as rtc0
[ 3.412708] rtc-efi rtc-efi: rtc core: registered rtc-efi as rtc1
[ 3.418843] i2c /dev entries driver
[ 3.432631] armada_thermal f06f808c.thermal: Overheat threshold between 93..107
[ 3.450105] armada_thermal f2400078.thermal: Overheat threshold between 92..107
[ 3.457540] md: linear personality registered for level -1
[ 3.463055] md: raid0 personality registered for level 0
[ 3.468395] md: raid1 personality registered for level 1
[ 3.473738] md: raid10 personality registered for level 10
[ 3.479330] md: raid6 personality registered for level 6
[ 3.484670] md: raid5 personality registered for level 5
[ 3.490008] md: raid4 personality registered for level 4
[ 3.495518] device-mapper: ioctl: 4.34.0-ioctl ( 2015-10-28) initialised<EMAIL_ADDRESS>[ 3.504455] sdhci: Secure Digital Host Controller Interface driver
[ 3.510673] sdhci: Copyright( c) Pierre Ossman
[ 3.515054] sdhci-pltfm: SDHCI platform and OF driver helper
[ 3.520832] xenon-sdhci f2780000.sdhci: Failed to setup input clk: -517
[ 3.527564] ledtrig-cpu: registered to indicate activity on CPUs
[ 3.533682] usbcore: registered new interface driver usbhid
[ 3.539282] usbhid: USB HID core driver
[ 3.543849] coresight-tmc f0809000.etf0: TMC initialized
[ 3.549339] coresight-tmc f080a000.etf1: TMC initialized
[ 3.554806] coresight-tmc f080b000.etf2: TMC initialized
[ 3.560271] coresight-tmc f080c000.etf3: TMC initialized
[ 3.565756] coresight-tmc f0811000.etf5: TMC initialized
[ 3.575210] coresight-tmc f0812000.etr: TMC initialized
[ 3.580660] coresight-funnel f0810000.funnel: FUNNEL initialized
[ 3.587026] coresight-etm4x f0c40000.etm0: ETM 4.0 initialized
[ 3.593083] coresight-etm4x f0d40000.etm1: ETM 4.0 initialized
[ 3.599138] coresight-etm4x f0e40000.etm2: ETM 4.0 initialized
[ 3.605190] coresight-etm4x f0f40000.etm3: ETM 4.0 initialized
[ 3.611095] of_graph_get_next_endpoint() : no port node found in /ap806/config-space/axim-ddr-rd@840000
[ 3.620561] coresight-axim f0840000.axim-ddr-rd: AXIM 4.0 2.0 initialized
[ 3.627399] of_graph_get_next_endpoint() : no port node found in /ap806/config-space/axim-ddr-wr@841000
[ 3.636849] coresight-axim f0841000.axim-ddr-wr: AXIM 4.0 2.0 initialized
[ 3.643689] of_graph_get_next_endpoint() : no port node found in /ap806/config-space/axim-sb-rd@848000
[ 3.653055] coresight-axim f0848000.axim-sb-rd: AXIM 4.0 2.0 initialized
[ 3.659806] of_graph_get_next_endpoint() : no port node found in /ap806/config-space/axim-sb-wr@849000
[ 3.669174] coresight-axim f0849000.axim-sb-wr: AXIM 4.0 2.0 initialized
[ 3.675928] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-cp-rd@3c5000
[ 3.686088] coresight-axim f23c5000.axim-cp-rd: AXIM 4.0 1.0 initialized
[ 3.692840] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-cp-wr@3c6000
[ 3.703001] coresight-axim f23c6000.axim-cp-wr: AXIM 4.0 1.0 initialized
[ 3.709754] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-ppv2-rd@3c0000
[ 3.720089] coresight-axim f23c0000.axim-ppv2-rd: AXIM 4.0 1.0 initialized
[ 3.727017] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-ppv2-wr@3c1000
[ 3.737350] coresight-axim f23c1000.axim-ppv2-wr: AXIM 4.0 1.0 initialized
[ 3.744277] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-hb1-rd@3c8000
[ 3.754524] coresight-axim f23c8000.axim-hb1-rd: AXIM 4.0 1.0 initialized
[ 3.761363] of_graph_get_next_endpoint() : no port node found in /cpn-110-master/config-space/axim-hb1-wr@3c9000
[ 3.771613] coresight-axim f23c9000.axim-hb1-wr: AXIM 4.0 1.0 initialized
[ 3.778972] NET: Registered protocol family 10
[ 3.783903] sit: IPv6 over IPv4 tunneling driver
[ 3.788824] NET: Registered protocol family 17
[ 3.793315] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[ 3.806093] 8021q: 802.1Q VLAN Support v1.8
[ 3.810328] 9pnet: Installing 9P2000 support
[ 3.814657] Key type dns_resolver registered
[ 3.818952] openvswitch: Open vSwitch switching datapath
[ 3.824417] mpls_gso: MPLS GSO support
[ 3.828623] registered taskstats version 1
[ 3.833849] Btrfs loaded
[ 3.850896] mac_addr 0:0:0:0:0:3
[ 3.864042] mvpp2 f2000000.ppv22 eth0: Using device tree mac address 00:00:00:00:00:03
[ 3.872358] mv_xor_v2 f26a0000.cpxor0: Marvell Version 2 XOR driver
[ 3.880641] mv_xor_v2 f26c0000.cpxor1: Marvell Version 2 XOR driver
[ 3.888724] omap_rng f2760000.trng: Random Number Generator ver. 203b34c
[ 3.895576] xhci-hcd f2500000.usb3: xHCI Host Controller
[ 3.900924] xhci-hcd f2500000.usb3: new USB bus registered, assigned bus number 1
[ 3.917037] xhci-hcd f2500000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x00010010
[ 3.925641] xhci-hcd f2500000.usb3: irq 27, io mem 0xf2500000
[ 3.931831] hub 1-0:1.0: USB hub found
[ 3.935625] hub 1-0:1.0: 1 port detected
[ 3.939730] xhci-hcd f2500000.usb3: xHCI Host Controller
[ 3.945081] xhci-hcd f2500000.usb3: new USB bus registered, assigned bus number 2
[ 3.952650] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 3.961065] hub 2-0:1.0: USB hub found
[ 3.964856] hub 2-0:1.0: 1 port detected
[ 3.969166] xenon-sdhci f2780000.sdhci: Fail to get Xenon PHY type. Use default eMMC 5.1 PHY
[ 3.978949] xenon-sdhci f2780000.sdhci: No vmmc regulator found
[ 3.984912] xenon-sdhci f2780000.sdhci: No vqmmc regulator found
[ 4.028525] mmc0: SDHCI controller on f2780000.sdhci [f2780000.sdhci] using ADMA 64-bit
[ 4.040840] armada38x-rtc f2284000.rtc: setting system clock to 2079-12-13 02:24:14 UTC<PHONE_NUMBER>)
[ 4.051151] Freeing unused kernel memory: 452K (ffffffc000c43000 - ffffffc000cb4000)
[ 4.064651] random: systemd: uninitialized urandom read (16 bytes read, 1 bits of entropy available)
[ 4.074318] random: systemd: uninitialized urandom read (16 bytes read, 1 bits of entropy available)
[ 4.084421] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[ 4.098103] mmc0: MAN_BKOPS_EN bit is not set
[ 4.107145] systemd[1]: Detected architecture arm64.
[ 4.109402] mmc0: new HS200 MMC card at address 0001
[ 4.109648] mmcblk0: mmc0:0001 Q2J55L 7.09 GiB
[ 4.109737] mmcblk0boot0: mmc0:0001 Q2J55L partition 1 16.0 MiB
[ 4.109829] mmcblk0boot1: mmc0:0001 Q2J55L partition 2 16.0 MiB
[ 4.109921] mmcblk0rpmb: mmc0:0001 Q2J55L partition 3 4.00 MiB
[ 4.112627] mmcblk0: p1 p2 < p5 p6 p7 p8 p9 p10 > p3
[ 4.144592] systemd[1]: Running with unpopulated /etc.
[ 4.149839] systemd[1]: No hostname configured.
[ 4.154427] systemd[1]: Set hostname to <localhost>.
[ 4.159470] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.168668] systemd[1]: Initializing machine ID from random generator.
[ 4.176466] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.186211] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.196445] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.207839] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.221062] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.232749] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.244142] random: systemd: uninitialized urandom read (16 bytes read, 2 bits of entropy available)
[ 4.253781] systemd[1]: Failed to populate /etc with preset unit settings, ignoring: No such file or directory
[ 4.301708] systemd[1]: Created slice System Slice.
[ 4.324534] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 4.328641] systemd[1]: Started Emergency Shell.
[ 4.328975] systemd[1]: Reached target Emergency Mode.
[ 4.329045] systemd[1]: Startup finished in 4.057s (kernel) + 266ms (userspace) = 4.324s.
Welcome to emergbash-4.3# [ 4.479740] hub 1-1:1.0: USB hub found
[ 4.483584] hub 1-1:1.0: 4 ports detected
[ 4.776524] usb 1-1.1: new high-speed USB device number 3 using xhci-hcd
[ 4.888729] hub 1-1.1:1.0: USB hub found
[ 4.892984] hub 1-1.1:1.0: 4 ports detected
[ 5.172524] usb 1-1.1.3: new high-speed USB device number 4 using xhci-hcd
[ 5.372758] usb 1-1.1.3: ep 0x81 - rounding interval to 128 microframes, ep desc says 255 microframes
[ 5.384461] usb 1-1.1.3: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
[ 5.393854] usb-storage 1-1.1.3:1.0: USB Mass Storage device detected
[ 5.401678] usb-storage 1-1.1.3:1.0: Quirks match for vid 054c pid 02a5: 80000
[ 5.408991] scsi host0: usb-storage 1-1.1.3:1.0
bash-4.3# [ 6.591678] scsi 0:0:0:0: Direct-Access Sony Storage Media 0100 PQ: 0 ANSI: 4
[ 6.600245] sd 0:0:0:0: [sda] 7628544 512-byte logical blocks: (3.91 GB/3.64 GiB)
[ 6.608725] sd 0:0:0:0: [sda] No Caching mode page found
[ 6.616445] sda: sda1
[ 6.620264] sd 0:0:0:0: [sda] Attached SCSI removable disk
bash-4.3#


Logo Platform
Home
(current)
News
Courses
Registration
FAQ
Contact
News section
Register now!
Lorem ipsum dolor sit amet.
View more
Lorem, ipsum dolor.
View more
Lorem ipsum dolor sit amet consectetur.
View more
Lorem, ipsum.
View more
Lorem ipsum dolor sit.
View more
Lorem ipsum dolor sit.
View more
Lorem ipsum dolor sit amet consectetur adipisicing.
View more
Lorem, ipsum dolor.
View more
Lorem ipsum dolor sit.
View more
Join to our courses?
Register now !


RT @mfeathers: If you're modifying methods more than you're adding or deleting them you're not changing your design, you're wiggling it ...
8/26/2011, 12:35:49 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @mfeathers: If you're modifying methods more than you're adding or deleting them you're not changing your design, you're wiggling it ...
8/26/2011, 12:35:49 PM
Favs: 0
Retweets: 0
link


Tools to run system processes in the background. It can check if a background process is running; wait on a background process to finish; get the exit status of finished processes; kill background processes. It can read the standard output and error of the processes, using non-blocking connections. 'processx' can poll a process for standard output or error, with a timeout. It can also poll several processes at once.
| Version: | 3.2.1 |
| Imports: | ps, R6, utils |
| Suggests: | callr, covr, crayon, debugme, parallel, testthat, withr |
| Published: | 2018-12-05 |
| Author: | Gábor Csárdi [aut, cre, cph], Winston Chang [aut], RStudio [cph, fnd], Mango Solutions [cph, fnd] |
| Maintainer: | Gábor Csárdi <csardi.gabor at gmail.com> |
| BugReports: | https://github.com/r-lib/processx/issues |
| License: | MIT + file LICENSE |
| URL: | https://github.com/r-lib/processx#readme |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| CRAN checks: | processx results |
| Reference manual: | processx.pdf |
| Package source: | processx_3.2.1.tar.gz |
| Windows binaries: | r-devel: processx_3.2.1.zip, r-release: processx_3.2.1.zip, r-oldrel: processx_3.2.1.zip |
| OS X binaries: | r-release: processx_3.2.1.tgz, r-oldrel: processx_3.2.1.tgz |
| Old sources: | processx archive |
| Reverse imports: | callr, cloudml, dynutils, eplusr, mlflow, pkgdown, qsub, rbi, RSuite, tensorflow, xopen |
| Reverse suggests: | blogdown, languageserver, plotly, ps |
Please use the canonical form https://CRAN.R-project.org/package=processx to link to this page.


--- layout: page title: About header-img: "img/about-bg.png" ---
Former Chef pursuing a second career as a Data Scientist to use my experience to help businesses.


just checking to see any addresses have huge UTXO amounts in them
...
komodo-cli -ac_name=LABS listunspent|jq '[map(select((.amount|tonumber) > 15)) | .[] | {address,txid,vout,amount}]'
[
{
"address": "RLabsCGxTRqJcJvz6foKuXAB61puJ2x8yt",
"txid": "3006151eb72e72bcdacc1dd656df1a851c2e826a4a224b70f48fcf6878eb9d26",
"vout": 103,
"amount": 23.42540952
}
]


Information about Monica
A talented accounting professional with outstanding knowledge of financial reporting systems in addition to great problem solving, analytical, and critical thinking skills seeks the position of an Graduate Accountant position to effectively analyze documents, accounts, and transactions, and perform other duties excellently.
Availability: Weekends
Experience: More than two years of tutoring experience.
|


Understanding the principles of neuroplasticity means that one’s mind is open and will not have a fixed mindset.  I will try to make what I am doing more meaningful, for instance, in terms of coding, I will look back at why I am coding in the first place instead of getting stumped about how hard it is. I will also be engaging with the principle “use it or lose it” alot, using coding as an example again, I will make sure to code daily so that the connection pathways continue to get stronger and not die out. Also Repetitive practice over and over on a problem, plus looking at the problem from different angles (e.g. youtube video tutorial, article reading) to help build stronger connections.
Useful Resource: https://www.huffpost.com/entry/the-10-fundamentals-of-re_b_9625926 This is an article by huffpost outlining the fundamentals of neuroplasticity. What makes it relevant is that it has links to other author’s books on neuro plasticity making it more credible. It also explains most of the fundamentals with an easy and simple simile, making it easy to understand. I knew about the brain being malleable and that rewiring was possible but it wasn’t until going over this section of the sprint till I realised “why aren’t I keeping this as a crucial part of my general thinking?”. I feel like understanding more and more of neuroplasticity is a super effective tool I should be utilising more often, especially with coding. Instead of self labelling myself when I get something wrong as a ‘failure’ or telling myself ‘I can’t do it’, I will remind myself ‘not yet’. I will try my best to reward myself mentally for the process rather than have my sights fixed on ‘getting it all right’. Progress over everything.
Learning Plan: These understandings help to specify my learning plan, to make more deliberate decisions in what I put my time and effort towards. Learning about neuroplasticity, makes me want to add to my learning plan.


Coronation Street exit confirmed for Liz McDonald as Beverley Callard quits after 30 years
Coronation Street actress Beverley Callard will bow out as Liz McDonald from the ITV soap after 30 years in the role
by Charlotte TuttonCoronation Street actress Beverley Callard has confirmed she is leaving the ITV soap having appeared as her character Liz McDonald over the past 30 years.
An exit has been announced for the character with her set to leave Weatherfield "with a bang".
The character is the mother of fellow Corrie resident Steve McDonald, with her granddaughter Amy also on the Cobbles.
Now, speaking to OK! magazine soap favourite Beverley has announced she will depart from the show next year, with a huge storyline lined up for her.
She told bosses of her plans earlier this month, while her final scenes will air in 2020.
The actress confessed: "I was in shock, I felt totally numb".
She added she had experienced "so many sleepless nights" over her decision, but knew she was making the right choice.
 I cant wait!"
Beverley, who first appeared on the soap in 1989, will soon go on tour with the comedy The Thunder Girls.
She joined the theatre show based on the best-selling novel alongside Coleen Nolan and Emmerdale's Sandra Marvin earlier this year.
Beverley also spoke of her frustrations over the lack of roles for older women when discussing her decision to leave the soap.
She said: "There’s very little work in our industry for women over 50, but I’m 62 and recently I was doing three jobs at once.
"It made me realise how I was privileged to have the opportunity to do so when so many women my age no longer get the chance."

"Although I’ve had to leave the safety net of being in Coronation Street to do this, I’m hoping that ageist bosses, of which there are many, take note of how successful this show is and it starts the ball rolling on helping other women my age, get the roles they still deserve."
Coronation Street airs Mondays, Wednesdays and Fridays at 7:30pm and 8:30pm on ITV.


Portable User Guide for Windows and Linux¶
Contents
- Introduction to Google Earth Enterprise Portable
- Useful resources
- Install GEE Portable
- Serve a globe or map from GEE Portable
- Serve a globe or map from the GEE Server
- Broadcast a globe or map
- Connect using GEE Portable
- Connect using the Google Earth EC
- Connect using the Google Earth Plug-in
- Get info about your map
- Change your configuration options
Introduction to Google Earth Enterprise Portable
Google Earth Enterprise Portable (GEE Portable) lets you view portable globes and maps on your laptop or desktop without requiring network access. This is useful for emergency responses to disasters like earthquakes or floods, or for maps that contain private information that you do not want to share on the internet.
You can install GEE Portable on a Windows or Linux machine. It
starts within seconds, and then you can launch a web browser to
display one of the portable globes or maps that has been saved to
the GEE Portable data
directory.
Note
You can also connect to a portable globe or map with the Google Earth Enterprise Client (Google Earth EC). The Google Earth Plug-in for viewing a globe in the browser is now obsolete, but if you still have a copy of the plug-in and a browser that supports it, you can use it to connect to a Portable Server.
Portable globe and maps
A portable globe or map is a single file that stores all the geospatial data available within your specified area of interest — including all high-resolution imagery, terrain, vector data, KML files, and searchable point of interest (POI) locations.
Outside the specified area of interest, the globe or map stores only low-resolution imagery and terrain. You specify the levels of resolution when you cut the globe or map.
The following table describes the portable file types and their compatibility with GEE Portable.
| Portable File Type | Description | Compatibility with Portable |
|---|---|---|
| .glb | Portable 3D globe. | All versions. |
| .glm | Portable 2D map. | All versions. |
| .glc | Composite map or globe file assembled from 2D or 3D layers of other portable files. | All versions of GEE Open Source Portable, discontinued GEE versions 4.4 and higher. |
Creating portable globes and maps
You can Create Portable Globes and Maps with the cutter tool feature of
the Google Earth Enterprise (GEE) Server, or you can obtain them
from third-party vendors. Depending on your area of coverage, it
can take only a few minutes to specify and generate a globe or map
and then save it to the GEE Portable data
directory.
Useful resources
- Creating portable globes and maps. Google Earth Enterprise users can learn how to cut globes or maps to serve from Portable.
- Portable Developer Guide. Software developers can create or customize applications for Portable.
Install GEE Portable
GEE Portable is supported on:
- Windows 7 and 10
- Red Hat Enterprise Linux version 7, including the most recent security patches
- Ubuntu 14.04 LTS and 16.04 LTS
To install GEE Portable:
- Refer to the Portable Server on Earth Enterprise Wiki for build, install, and run instructions.
Note
Before you install an upgrade, back up the contents
of your data
directory.
Ther are currently no OS packages or installers and uninstallers for Portable server. The installation procedure is to build it on the OS distribution you want to use it on as a file archive. You can extract the contents of the archive in whatever location you like, then execute the server from that location.
Note
The Google Earth Plug-in is not supported any longer,
so you cannot view globes (.glb
or .glc
files) in your
browser (unless you happen to have a copy of the old plug-in
and a browser that can run it on Windows or Mac OS). You can,
however, view maps (.glm
files). You can also use your
Linux machine to serve 3D globes that you can view from Linux,
Mac, or Windows machines that are connected to the Linux server.
Serve a globe or map from GEE Portable
Unpacking GEE Portable creates a directory with a name similar to
portableserver-<os>-<version>
, with <os>
and <version>
having values depending on the operating system, Portable version,
and build date. This directory contains a folder named data
(unless you renamed it in portable.cfg
). Copy your globe or
map to the data
folder. The GEE Portable interface lists all
the globes and maps placed in this folder. If you no
longer want a globe or map to appear in the list, simply remove it
from the data
folder.
Serve a globe or map from the Google Earth Enterprise Server
If you want to serve a globe or map to a large number of users, you can use a Google Earth Enterprise Server (GEE Server) on a Linux machine instead of a GEE Portable Server on a user’s machine. GEE Server is capable of storing very large globes or maps, and it also lets you serve globes and maps on your own private network so that only authorized users can connect.
To serve a map or globe from GEE Server:
Enable the GEE Server Cutter tool on the command line:
- In GEE Open Source:
gecutter enable
By default, the cut globes are stored in the
/opt/google/gehttpd/htdocs/cutter/globes
directory.To change the directory, create a symlink to point to another directory.
- In GEE Open Source:
Access the Google Earth Enterprise Server Admin console in a browser window by going to
myserver.mydomainname.com/admin
, replacing myserver and mydomainname with your server and domain.Sign in with the default credentials or the username and password assigned to you:
- Default username:
geapacheuser
- Default password:
geeadmin
Note
If you do not know your username and password, contact your Google Earth Enterprise Server System Administrator.
- Default username:
Click Manage Portable to display the list of portable files in the
/opt/google/gehttpd/htdocs/cutter/globes
directory (by default).Click Register next to the portable file you want to connect to. A message appears to indicate that your portable map or globe has been registered to GEE Server. Close the Manage portable globes window.
If you want to download the file, click the file name.
The registered portable map or globe now appears in the Databases list of the GEE Server Admin console.
Check the box next to the portable file name, then click Publish. The Publish dialog appears.
Enter a Publish point or accept the default. For example, the Publish point MyCutGlobe would result in a serving URL
myserver.mydomainname.com/MyCutGlobe
, where myserver and mydomainname are specific to your server.Specify a virtual host and optionally turn on WMS.
Click the Publish button to publish the portable file.
A message is displayed to indicate that your portable map or globe has been published and the Publish point is updated in the Databases list.
Click the Publish point link to view the portable map or globe in a new browser tab.
Broadcast a globe or map
To share a globe or map with others on your network:
- When
disable_broadcasting
is set toTrue
inportable.cfg
, the default setting, you can enable broadcasting using either of the following methods:- Add
accept_all_requests True
to yourportable.cfg
file. - Add
disable_broadcasting False
to yourportable.cfg
file, and follow the next option.
- Add
- When
disable_broadcasting
is set toFalse
inportable.cfg
:
Note
By default, broadcasting is off and cannot be turned
on via an http call to the API. This feature is controlled by
the disable_broadcasting
flag, which is set to True
in
portable.cfg
. However, if you set accept_all_requests
to True
in portable.cfg
, then broadcasting is enabled,
regardless of the disable_broadcasting
state.
Connect using GEE Portable
Start Portable Server by executing python portable_server.py
from the folder you unpacked the Portable Server archive in.
After it launches, open a browser and navigate to
http://localhost:9335
(using any
custom port or hostname you may have configured). Click the
Folder (outlined in red), then select the
map you want to view. You can view only one map at a time.
Portable globes cannot be viewed with a web browser. Use
Google Earth Enterprise Client to view globes.
Globes and maps that are broadcast on your local network might require an access key. If prompted, enter the key to view the globe or map. You can obtain the key from the person who is broadcasting the globe or map.
Connect using the Google Earth Enterprise Client
Launch the Google Earth Enterprise Client (Google Earth EC). When
prompted for a server address, enter http://localhost:9335
. If
you changed the default port in portable.cfg
, use the new
port value instead.
Connect using the Google Earth Plug-in
GEE Portable comes with a preconfigured HTML page called
hello_maps.html
that displays your map using the Google Maps API
.
If you wish to make your own custom application, start by making a copy of either of these files and then add your own edits.
To access either of the files, enter the URL in your browser:
http://localhost:9335/local/preview/developers/hello_maps.html
Note
Although it is possible to configure GEE Portable to display multiple maps at the same time, this is not recommended or supported. The additional configuration requires you to build the map to reference a specific port number, which means you would have to rebuild it if you wanted to re-use it for any other ports.
Get info about your globe or map
Click the Folder (outlined in red) to view a list of the globes and maps you can access. Each globe or map is listed with its file name, description, creation date, and size.
Select a map, then click the Menu (outlined in red) then select Show layer list to see all the layers for that map. You can use the list to select the layers you want the map to display. To hide the layer list, click the Menu, then select Hide layer list. |
Change your configuration options
The Google Earth Portable directory contains the
server/portable.cfg
configuration file. This is the directory
you unpacked the Portable Server archive in.
The Portable configuration file defines the editable options listed below.
port
. The port on which to serve the globe or map. The default is 9335.globes_directory
. The directory that contains the globe and map files.map_name
. The default globe or map to serve when GEE Portable launches.fill_missing_map_tiles
. If set toTrue
, enables pixel-filling from the ancestor map tile when there are no more tile descendants. Set this toFalse
if you want to clearly indicate areas that are beyond their natural resolution, or if you just want to improve performance. You can also improve performance by lowering the value of themax_missing_maps_tile_ancestor
option below.max_missing_maps_tile_ancestor
. If thefill_missing_map_tiles
option (above) is set toTrue
and no tiles exist at your current display level, this option specifies the maximum number of tiles to create from samples of the ancestor tiles. Using a lower value can improve performance because the server creates fewer tiles. The value is written as 2x by 2x sized pixels. By default, x = 3. (Or 23 by 23 pixels, which equals 8 x 8 pixels. This is Display Level 6, or 24 tiles). To lower the value, replace x with a number lower than 3.local_override
. If set toTrue
, GEE Portable looks for all the files on the server first before looking for them on your machine.disable_broadcasting
. By default, this flag is set toTrue
, preventing broadcasting from being turned on via an HTTP call to the API. However, if you setaccept_all_requests
toTrue
inportable.cfg
, then broadcasting is enabled, regardless of thedisable_broadcasting
state.accept_all_requests
. If set toTrue
, GEE Portable accepts all requests to the server, and thus enables broadcasting, regardless of the state of thedisable_broadcasting
flag.


This is the main gun used in US army. It uses a short-stroke gas piston system. It also is the standard assault rifle of the Norwegian Armed Forces, and it replaced FAMAS on French Armed Forces. This was the gun used by SEAL Team Six to kill Osama Bin Laden in 2011.
FN SCAR Mid-range FAMAS


Small-Variance Nonparametric Clustering on the Hypersphere
Structural regularities in man-made environments reflect in the distribution of their surface normals. Describing these surface normal distributions is important in many computer vision applications, such as scene understanding, plane segmentation, and regularization of 3D reconstructions. Based on the small-variance limit of Bayesian nonparametric von-Mises-Fisher (vMF) mixture distributions, we propose two new flexible and efficient k-means-like clustering algorithms for directional data such as surface normals. The first, DP-vMF-means, is a batch clustering algorithm derived from the Dirichlet process (DP) vMF mixture. Recognizing the sequential nature of data collection in many applications, we extend this algorithm to DDP-vMF-means, which infers temporally evolving cluster structure from streaming data. Both algorithms naturally respect the geometry of directional data, which lies on the unit sphere. We demonstrate their performance on synthetic directional data and real 3D surface normals from RGB-D sensors. While our experiments focus on 3D data, both algorithms generalize to high dimensional directional data such as protein backbone configurations and semantic word vectors.
Man-made environments and objects exhibit clear structural regularities such as planar or rounded surfaces. These properties are evident on all scales from small objects such as books, to medium-sized scenes like tables, rooms and buildings and even to the organization of whole cities. Such regularities can be captured in the statistics of surface normals that describe the local differential structure of a shape. These statistics contain valuable information that can be used for scene understanding, plane segmentation, or to regularize a 3D reconstruction.
Inference algorithms in fields such as robotics or augmented reality, which would benefit from the use of surface normal statistics, are not generally provided a single batch of data a priori. Instead, they are often provided a stream of data batches from depth cameras. Thus, capturing the surface normal statistics of man-made structures often necessitates the temporal integration of observations from a vast data stream of varying cluster mixtures. Additionally, such applications pose hard constraints on the amount of computational power available, as well as tight timing constraints.
We address these challenges by focusing on flexible Bayesian nonparametric (BNP) Dirichlet process mixture models (DP-MM) which describe the distribution of surface normals in their natural space, the unit sphere in 3D. Taking the small variance asymptotic limit of the DP-MM of von-Mises-Fisher (vMF) distributions, we obtain a fast k-means-like algorithm, which we call DP-vMF-means, to perform nonparametric clustering of data on the unit hypersphere. DP-vMF-means is not much more complicated than spherical k-means as you can see in this basic python-based implementation. Furthermore, we propose a novel dependent DP mixture of vMF distributions to achieve integration of directional data into a temporally consistent streaming model. Small variance asymptotic analysis yields the k-means-like DDP-vMF-means algorithm.
Nonparametric directional clustering of scenes from the NYU dataset with DP-vMF-means
Directional segmentation of scenes from the NYU v2 RGB-D dataset as implied by surface normal clusters. The complexity of the scenes increases from left to right as can be seen from the RGB images. The second row shows the clustering inferred by DP-vMF-Means while the third and fourth show the spherical k-means results. Black denotes missing data due to sensor limitations. Note that DP-vMF-means adapts the number of clusters to the complexity of the scene.
Temporally consistent directional clustering with DDP-vMF-means
Clustering of a surface normal stream recorded when walking a 90 degree turn in an office environment (see video above as well). We depict key-frames color-coded with the implied surface-normal clustering for three clustering algorithms. The plots in the second and third row depict the percentage of normals associated to the respective cluster for DDP-vMF-means and sequential DP-vMF-means. Note that only the clustering obtained via the DDP-vMF-means algorithm is consistent across the whole run.
Bibtex
@inproceedings{ straub2015ddpvmf,
author = {Straub, Julian and Campbell, Trevor and How, Jonathan P. and Fisher III, John W.},
title = {Small-Variance Nonparametric Clustering on the Hypersphere},
year = {2015},
booktitle = {CVPR},
url = { http://people.csail.mit.edu/jstraub/download/straub2015ddpvmf.pdf}
}


-home to web developer and writer extraordinaire Nyiema Bayfield-
want jaw-dropping web design? Uh-huh.
want smart and clever carefully crafted content? Yup.
want to make a lasting impression on site visitors? Certainly.
want to create simple yet stunning digital experiences? Most Definitely.
want the ability to transform customers into brand enthusiasts? Indubitably.
want your online presence to actually reflect your company and what you do? Yes!
Well, then you've come to the right place!
I am:
I bring a little bit of me to every project I work on. So here's what you need to know:
I'm a published poet with a love for a carefully turned phrase. I believe good design is nothing without good content to support it. I have a flare for finding what's unique and different, and can utilize this talent to help you elevate yourself above the competition. I have evil-genius tendencies and would love to help you perfect your plans for world domination.
I was born and raised in the San Francisco-Bay Area, forced to live in exile in Los Angeles while attending the University of Southern California, and have survived(just barely) a full-changing of the seasons in Tucson, Arizona; Madison, Wisconsin; and Mill Spring, North Carolina.
Phone:<PHONE_NUMBER>
Email: ReflectiveDesignStudio@Gmail.com


Provides statistical tests and algorithms for the detection of change points in time series and point processes - particularly for changes in the mean in time series and for changes in the rate and in the variance in point processes. References - Michael Messer, Marietta Kirchner, Julia Schiemann, Jochen Roeper, Ralph Neininger and Gaby Schneider (2014) <doi:10.1214/14-AOAS782>, Stefan Albert, Michael Messer, Julia Schiemann, Jochen Roeper, Gaby Schneider (2017) <doi:10.1111/jtsa.12254>, Michael Messer, Kaue M. Costa, Jochen Roeper and Gaby Schneider (2017) <doi:10.1007/s10827-016-0635-3>.
| Version: | 1.3 |
| Published: | 2017-09-15 |
| Author: | Michael Messer, Stefan Albert, Solveig Plomer, Gaby Schneider |
| Maintainer: | Michael Messer <messer at math.uni-frankfurt.de> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| CRAN checks: | MFT results |
| Reference manual: | MFT.pdf |
| Package source: | MFT_1.3.tar.gz |
| Windows binaries: | r-devel: MFT_1.3.zip, r-release: MFT_1.3.zip, r-oldrel: MFT_1.3.zip |
| OS X binaries: | r-release: MFT_1.3.tgz, r-oldrel: MFT_1.3.tgz |
Please use the canonical form https://CRAN.R-project.org/package=MFT to link to this page.


Methods
setOptions(options)
Add or reset option property.
| Name | Type | Description |
|---|---|---|
options |
Object | Options |
noticeOpen(message)
Open a notice area.
| Name | Type | Description |
|---|---|---|
message |
String | Notice message |
noticeClose()
Close a notice area.
save()
Copying the contents of the editor to the original textarea
getContext() → {Object}
Gets the kothing-editor's context object. Contains settings, plugins, and
cached element objects.
getContents() → {String}
Gets the contents of the kothing-editor
getImagesInfo() → {Array}
Gets uploaded images informations
insertImage(files)
Upload images using image plugin
Parameters:
| Name | Type | Description |
|---|---|---|
files |
FileList | FileList |
insertHTML(html)
Inserts an HTML element or HTML string or plain string at the
current cursor position
Parameters:
| Name | Type | Description |
|---|---|---|
html |
Element|String | HTML Element or HTML string or plain string |
setContents(contents)
Change the contents of the kothing-editor
Parameters:
| Name | Type | Description |
|---|---|---|
contents |
String | Contents to Input |
appendContents(contents)
Add contents to the kothing-editor
Parameters:
| Name | Type | Description |
|---|---|---|
contents |
String | Contents to Input |
disabled()
Disable the kothing-editor
enabled()
Enabled the kothing-editor
show()
Show the kothing-editor
hide()
Hide the kothing-editor
destroy()
Destroy the kothing-editor
Events
It can be redefined by receiving event object as parameter. It is
not called in exceptional cases and is called after the default
event function has finished.
onScroll(event)
Scroll event
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
onClick(event)
Click event
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
onKeyDown(event)
KeyDown event
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
onKeyUp(event)
KeyUp event
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
onDrop(event)
Drop event
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
onChange(contents)
When the contents change
| Name | Type | Description |
|---|---|---|
contents |
String | HTML string |
onPaste(event, cleanData, maxCharCount)
Paste event.
Called before the editor's default event action.
If it returns false, it stops without executing the rest of the action.
Called before the editor's default event action.
If it returns false, it stops without executing the rest of the action.
| Name | Type | Description |
|---|---|---|
event |
Object | Event Object |
cleanData |
String | HTML string modified for editor format |
maxCharCount |
Boolean | maxCharCount option (true if max character is exceeded) |
onImageUpload(targetImgElement, index, state, imageInfo, remainingFilesCount)
Called when the image is uploaded or the uploaded image is deleted
| Name | Type | Description |
|---|---|---|
targetImgElement |
Element | Current img element |
index |
Number | Uploaded index (key value) |
state |
String | Upload status ('create', 'update', 'delete') |
imageInfo |
Object |
src: imgage src index: data index name: file name size: file size select: select function delete: delete function |
remainingFilesCount |
Number | Count of remaining image files |
onImageUploadError(errorMessage, result)
Called when the image is uploaded or the uploaded image is deleted
| Name | Type | Description |
|---|---|---|
errorMessage |
String | Error message to show |
result |
Object | Result object |
showInline(toolbar, context)
Paste event.
Called before the editor's default event action.
If it returns false, it stops without executing the rest of the action.
Called before the editor's default event action.
If it returns false, it stops without executing the rest of the action.
| Name | Type | Description |
|---|---|---|
toolbar |
Element | Toolbar Element |
context |
Object | The editor's context object |


California homeowner finds dead woman inside house, bomb threat written on wall: police
by Danielle WallaceA gated community in southern California was evacuated Thursday night after a homeowner discovered a dead woman in a pool of blood inside his house along with a message written on the wall indicating there was a bomb somewhere inside the residence, authorities said.
SHOOTING DEATH OF CALIFORNIA DEPUTY LEADS TO FEDERAL DRUG, WEAPONS CHARGES AGAINST FOUR MEN
Officials said the home was in a gated community in Simi Valley, located in Ventura County, Fox 11 Los Angeles reported. The woman, whose identity has not been released, was pronounced dead at the scene.
Paramedics spotted a message written on the wall of the home indicating that there was a bomb inside, Simi Valley Police Commander Steve Shorts said. About 47 neighbors in nearby houses were ordered to evacuate at around 7 p.m. The bomb squad was called, Fox 11 reported. Other residents in the community were ordered to take shelter inside.
CLICK HERE FOR THE ALL-NEW FOXBUSINESS.COM
No arrests had been made as of early Friday.


Shadow of the Giants Trail Run 50 km
Fish Camp CA/USA
Website: www.shadowofthegiants50k.com
Race Winners
(24 runnings)
02 Jun
2012 3:31:36 4:09:06 04 Jun
2011 3:24:46 3:58:03 05 Jun
2010 4:15:42 4:26:43 30 May
2009
4:12:57
5:25:10
31 May
2008
4:17:36
5:17:05
02 Jun
2007
4:32:58
5:22:57
03 Jun
2006
4:33:04
5:31:41
04 Jun
2005
4:01:01
4:40:30
05 Jun
2004
4:18:43
4:32:01
07 Jun
2003
4:19:19
5:10:38
01 Jun
2002
4:27:51
5:07:02
02 Jun
2001
4:12:24
4:53:56
03 Jun
2000
4:01:10
4:48:23
05 Jun
1999
3:52:51
5:10:12
06 Jun
1998
3:59:17
5:22:40
31 May
1997
4:13:08
4:57:25
01 Jun
1996
4:02:38
5:09:35
03 Jun
1995
3:59:57
5:02:33
04 Jun
1994
3:39:35
4:18:23
Jun
1993
---
---
May
1992
---
---
1991
---
---
1990
---
---
Notes: 1990 was the inaugural year. The race distance was 29.2 mile (47 km) for
1990-1994 and 55 km for 1995-2010 (distances are approximate).
08 Jun
2013
3:43:42
Oswaldo Lopez-7
4:20:28
Michelle Barton-5
Oswaldo Lopez-6
Maria Rivera
Hal Koerner (OR/USA)
Michelle Barton-4
Oswaldo Lopez-5
Michelle Barton-3
Clark Zealand
Kelly Cronin-2
Oswaldo Lopez-4
Michelle Barton-2
Oswaldo Lopez-3
Michelle Barton
(CA/USA)
Oswaldo Lopez-2
Robin Green
Oswaldo Lopez
(CA/USA)
Kelly Cronin
Tim Monaco
Beverly Anderson-Abbs
(CA/USA)
Tim Monaco
Leigh Kenny
Frank Bozanich
(CA/USA)
Maria Gallardo-3
Rob McNair-4
Katie Gengler
(CA/USA)
Rob McNair-3
Amy Marshall
Ian Torrence (NV/USA)
Kristin Dantagnan
Rob McNair-2
Maria Gallardo-2
Rob McNair
(CA/USA)
Maria Gallardo
(CA/USA)
Brandon Sybrowsky
Ofelia Bermudez
Tom Greene
Jennifer Johnston
(CA/USA)
Tom Cheese
Evelyn Marshall
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
Most Wins
(1990/date)
Men
7
Oswaldo Lopez
2005-2008,2010,2012-13
Women
5
Michelle Barton
(CA/USA)
2007-08,2010-11,2013
Prize Money
(ADR qualified runners)
No information on prize money has been reported for this race.
Race Time Bias
(sec/km)
The race time bias is not calculated for distances beyond 45 km.
Competitive Level
(1990-date)
Insufficient data to calculate the competitive level.
Last Updated on
08 Sep 2013
Contributor: Juraj Gasparovic (24)


{% extends 'base.html' %} {% load static%} {% block content %}
Got to know more about your constituency.
involve yourself in the development process, through access to information and participating
on planning process
This site provides easy to use interface to find location of the goverment projects in your location through searches
Your will be done, to report on any suspicious doing find mismanagement on the ground through pictures and complains
in unspouse to nerds or issues that require funds/rsources for community building you can show your performance and suggestions
Heat maps and buffering polygons, searches are enabled within our maps to help the admin analyze your proposal based on your location and provide a guideline justifiable feed back


Clause 27 of the Standard contains the Input/output library, lib.input.output. This library describes components for program input and output. If you are reading this manual online, click the name of header file or entry to go to its description.
| Header File | Corresponding Entries in this Reference | ||
<iosfwd> |
|||
<iostream> |
|||
<ios> |
|||
<streambuf> |
|||
<istream> |
|||
<ostream> |
|||
<iomanip> |
|||
<sstream> |
|||
<fstream> |
|||
<strstream> |


High-tech Japan uses AI in song to welcome pope
by Hideto Sakai, Akira TomoshigeTOKYO (Reuters) - Few aspects of life escape the touch of high tech in cutting-edge Japan, including an official song written to welcome Pope Francis when he visits Japan from Saturday.
Written by Jun Inoue, the song, “Protect all Life - The Signs of the Times”, is based on the theme of the pope’s Japan visit and was partly composed using an artificial intelligence (AI)-powered programme Inoue created that can write a piece of music in a few seconds.
Inoue, a producer and composer who has written for top bands such as Arashi, and is Catholic, said he agonised over using the AI programme but finally decided to include it because the history of music and technology were intertwined.
“I thought I should give everything I had to the song, so I decided to put in all the cutting-edge technology I had,” he told Reuters. He shares composing credit with “Amadeus Code AI”.
The song, which was written at the behest of the Catholic Bishops’ Conference of Japan, will be played at masses in the city of Nagasaki as well as Tokyo and comes in several versions, including instrumental and karaoke.
There are also dance steps and stylised hand gestures that are the Japanese sign language version of the lyrics, with a teaching video posted on the official website for the pope’s visit. Inoue hopes worshippers at the public masses, to be held at stadiums, will sing and dance along with the song.
While the footwork is simple, consisting of side-to-side steps in time to the music, the sign language may take a bit more time to master.
“There are a lot of people who live in a world without sound, and I would like them too to understand the meaning of the lyrics and the message,” Inoue said.
Theme songs for papal visits have been composed before. One has been unveiled for Thailand, where Francis will visit before Japan.
His visit from Nov. 23-26, which will also include Hiroshima, is only the second papal visit to Japan and the first since John Paul II 38 years ago.
(This story corrects typographical error in headline)


Sorry... Could not save your settings... Please try again later, whenever you feel like it. Thanks for your patiance


@import views.html.util._ @this(standardPage: standardPage) @() @standardPage("You're signed out", Some(heading("You're signed out"))) { } {
You have been successfully signed out.


Using the directive
Reverse Geocode from fixed lat and lng:
Reverse Geocode scope variables from controller:
Github repo
Using the service
Full address from controller
{{my.formatted_address}}


procedure GetClassNames(Strings: TStrings);
Adds names of all classes currently in the list to the string list provided by the parameter Strings.
[See Also]


This is data from instance 1.
xforms-binding-exception
4.7.e3 null search for instance causes exception
When you activate the Submit control below you must see an xforms-binding-exception message or a fatal
error due to an xforms-binding-exception message.
Submit


{% extends "base.html" %} {% block title %}io.livecode.ch{% endblock %} {% block body_top_extra %} {% endblock %} {% block content %}
io.livecode.ch
is a prototype for
turning code repositories into interactive tutorials and books, with
code snippets that can be edited and run on the web.
The backend is powered by docker.io and is language-agnostic, but designed for runtimes with small startup costs and memory requirements.
The source code
for the io.livecode.ch
project is freely available, and
contributions are welcome.
io.livecode.ch
Tutorials
Here are the instructions on how to create your
own io.livecode.ch
tutorials.
Many thanks to DigitalOcean (referral link) for graciously hosting this service!
{% endblock %}


Created by Froilan Miranda
Ionic is one of the most widely used mobile hybrid frameworks.
Ionic is built on top of AngularJS, a super heroic framework for building MVW apps.
With the extensive growth of asynchronous and highly interactive web pages, the user experience can be made better with client-side driven applications than server-side driven applications.
In a typical MVC architecture, a model is an entity where you save the data, and a controller is where you massage the data before you display it on a view.
Unlike the server-side MVC, the client-side MVC has an extra component named the router. A router is typically a URL of the web page that dictates which model/view/controller should be loaded.
This is the basic idea behind AngularJS, and how it achieves separation of concerns and at the same time provides a single-page application architecture.
AngularJS is driven from HTML, unlike most client-side JavaScript frameworks.
Login Form
In the preceding code snippet, the attributes that start with ng- are called as AngularJS directives.
Here, the ng-disabled directive takes care of adding the disabled attribute to the Submit button when the e-mail or password is not valid.
Dependency Injection (DI) takes care of injecting units of code where required. It is one of the key enablers that help us achieve separation of concerns.
AngularJS services are substitutable objects that can be injected into directives and controllers via Dependency Injection. These objects consist of simple pieces of business logic that can be used across the app.
AngularJS services are lazily initialized only when a component depends on them.
The $interval is another service that is available in AngularJS. The $interval is the same as setTimeInterval(). It wraps setTimeInterval() and returns a promise when you register this service. This promise then can be used to destroy $interval later on.


+++ title = "Liège" lat = 50.638139 lon = 5.567321 +++
Liège is one of the chief cities in the French-speaking southern part of Belgium known as Walloon. It doesn't have an awful lot of fame to its name — and as such, it's not on every tourist's must-visit list — but it boasts a gorgeous historic centre, and a proud and unique local cultural vibe. I came to Liège mainly to visit my friend Christian and his family, whom I stayed with tonight.


| Coming soon | ||
|---|---|---|
| QCON SF: Introduction to Docker and Containers | ||
| QCON SF: Orchestrating Microservices with Docker Swarm | ||
| Past workshops | ||
| LISA17 M7: Getting Started with Docker and Containers | 📚 | 💬 |
| LISA17 T9: Build, Ship, and Run Microservices on a Docker Swarm Cluster | 📚 | 💬 |
| Deploying and scaling microservices with Docker and Kubernetes | 📚 | 💬 |
| DockerCon Workshop: from Zero to Hero (full day, B3 M1-2) | 📚 | |
| DockerCon Workshop: Orchestration for Advanced Users (afternoon, B4 M5-6) | 📚 | |
| Self-paced Workshop: Orchestrating Microservices with Docker and Swarm | 📚 |


Punica CSS Grid system offers a powerful and customizable grid-based layout system.
CSS Grid Layout is the most powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows, unlike flexbox which is largely a 1-dimensional system.
CSS-Tricks
| Info | Default Value |
|---|---|
| Grid Size | 16 |
| Grid Gap | 6px |
| Props | Default Class Name |
|---|---|
| Container | .container |
| Row | .row |
| Column | .col- |
| Offset | .offset- |
| Equal Height | .equal |
| Breakpoints | Default Class | Default Value |
|---|---|---|
| Extra Small | xs |
- |
| Small | sm |
500px |
| Medium | md |
768px |
| Large | lg |
992px |
| Extra Large | xl |
1260px |


This inspection reports any instances of Groovy
return
statements inside of
finally
blocks. While occasionally intended, such
return
statements may mask exceptions thrown, and tremendously complicate debugging.
Powered by InspectorGroovy


Dragonlance Books
22 volumes owned as of April, 24th 2016:
Dragonlance: Lost Legends
- Kagonesti: Dragonlance Lost Histories, Vol. 1
- Fistandantilus Reborn: Dragonlance
Dragonlance: Heroes I
- The Legend of Huma
- Stormblade
- Weasel's Luck
Dragonlance: Heroes II
- Kaz the Minotaur
- The Gates of Thorbardin
- Galen Beknighted
Dragons of a New Age
- The Dawning of a New Age
- Day of the Tempest;
- Eve of the Maelstrom
Chronicles
- Dragons of Autumn Twilight
- Dragons of Winter Night
- Dragons of Spring Dawning
- Dragons of Summer Flame
Legends
- Time of the Twins
- War of the Twins
- Test of the Twins
The Warriors
- Knights of the Crown
- Maquesta Kar-Thon
- Knights of the Sword
- Theros Ironfeld
- Knights of the Rose
- Lord Soth
- The Wayward Knights
Defenders of Magic
- Night of the Eye
- The Medusa Plague
- The Seventh Sentinel
Meetings Sextet
- Kindred Spirits
- Wanderlust
- Dark Heart
- The Oath and the Measure
- Steel and Stone
- The Companions
The Dhamon Saga
- Downfall
- Betrayal
- Redemption
Tales
- The Magic of Krynn
- Kender, Gully Dwarves, and Gnomes
- Love and War
Tales II
- The Reign of Istar
- The Cataclysm
- The War of the Lance
Preludes
- Darkness and Light
- Kendermore
- Brothers Majere
Preludes II
- Riverwind, the Plainsman
- Flint, the King
- Tanis, the Shadow Years
Dwarven Nations
- The Covenant of the Forge
- Hammer and Axe
- The Swordsheath Scroll
Elven Nations
- Firstborn
- The Kinslayer Wars
- The Qualinesti
Villains
- Before the Mask
- The Black Wing
- Emperor of Ansalon
- Hederick the Theocrat
- Lord Toede
- The Dark Queen
Chaos War
- The Doom Brigade
- The Last Thane
- Tears of the Night Sky
- The Puppet King
- Reavers of the Blood Sea
- The Siege of Mount Nevermind
Young Adult New Adventures Collection
New Adventurers Chronicles
- A Rumor of Dragons
- Night of the Dragons
- The Nightmare Lands
- To the Gates of Palanthas
- Hope's Flame
- A Dawn of Dragons
New Adventures
- Temple of the Dragonslayer
- The Dying Kingdom
- The Dragon Well
- Return of the Sorceress
- Dragon Sword
- Dragon Day
- Dragon Knight
- Dragon Spell
New Adventures Trinistyre Trilogy
- Wizard's Curse
- Wizard's Betrayal
- Wizard's Return
New Adventures Elidor Trilogy
- Crown of Thieves
- The Crystal Chalice
- City of Fortune
New Adventures Suncatcher Trilogy
- The Wayward Wizard
- The Ebony Eye
- The Stolen Sun
New Adventures Goodlund Trilogy
- Warrior's Heart
- Warrior's Blood
- Warrior's Bones
New Adventures Elements Trilogy
- Pillar of Flame
- Queen of the Sea
- Tempest's Vow
Second Generation (HC)
Not sure exactly which books are in this series or what it's purpose is, so I'll have to look more into it.


JavaScript style guide support
Description of support
Pretty Diff offers some conformance support to the requirements of several popular style guides. The objective is to automate certain particular requirements of style guide conformance so that code authors can focus on more important things. Pretty Diff does not attempt to magically fix code to be 100% conformant to any style guide.
This support is provided by use of an option, styleguide to the prettydiff.js and jspretty.js libraries. When this option is passed with an accepted value the settings of other various options are overwritten. This forcefulness is intentional so that code is modified according to rules applied by a group setting in opposition to an individual's preferences.
If your organization has a style guide you would like represented by the Pretty Diff tool please open an issue on Github. Please include a link to the style guide documentation and any additional information or requests. All I ask in payment is your kind support in spreading awareness of this tool.
A styleguide setting can be automatically defined within the code without specifying anything in the Pretty Diff options. Setting the style guide in this way binds a setting to a code file and prevents interference from any potentially conflicting settings defined elsewhere. Assuming you wish to specify google as a style guide value just add a code comment like the following above the first line of code:
/*prettydiff.com styleguide:google*/
Limitations
Pretty Diff suggests use of something like JSCS to achieve complete conformance to a code style. The JSCS tool is a validator designed to yell at code authors when their code violates style rules and it does not alter a code sample. Using the style guide feature of Pretty Diff together with JSCS can help a code author to achieve 100% conformance to code style rules while allowing the code author to automate away many minor code style violations.
Manipulating code is risky business. Changing code can result in unplanned consequences they may alter or break the code from the author's intentions. Due to this risk there are certain alterations that Pretty Diff will intentionally not perform. In those cases a code author should be held accountable to make decisions about why code was written in a particular way. Here is an incomplete list of things Pretty Diff intentionally does not change.
Hoisting
Pretty Diff will not hoist or move around reference declarations in the code. References declared with the var are naturally hoisted by JavaScript interpreters, but references declared with the ES6 keyword let will not be hoisted. Moving around references declarations with let is a change in logic that can alter how a given set of code is interpreted.
Variable order
Pretty Diff will not reorder consecutively declared variables. This change can result in an error when one variable makes use of another variable at declaration time, and changing variable order in this case will break the code.
Logic sequence
Pretty Diff will not change the order or logic, except for trivial and predictable syntax changes. The one major exception to this rule is that Pretty Diff can alphabetize object properties.
Contributions and requests
If you have ideas for additional automation rules or rule sets please open a Github issue or submit a pull request.
Supported style guide rules
See the most current style guide definitions at the top of the jspretty.js file. The options present for each style guide rule follow the Pretty Diff options listed in the documentation.


--- layout: default ---
For Greg, strong communication—visual or spoken—is always about clarity. A graphic designer at heart and by trade, Greg’s decidedly Swiss perspective is shaped by years designing magazines, art-directing postage stamps for the Postal Service and taking an annual pilgrimage to (where else?) Switzerland to study the craft. Since co-founding Journey Group in 1992, he’s brought strong design thinking to our many client relationships, building rapport through genuine interest, well-told stories and a subtle Southern drawl.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget,
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget, bibendum sollicitudin lacus. Aliquam eleifend sollicitudin diam, eu mattis nisl maximus sed. Nulla imperdiet semper molestie. Morbi massa odio, condimentum sed ipsum ac, gravida ultrices erat. Nullam eget dignissim mauris, non tristique erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.
Here is some more information about this product that is only revealed once clicked on.


{% extends "layout.html" %} {% block page_title %} Digitise, Store and View {% endblock %} {% block content %} {% block phase_banner %}{% include "includes/phase_banner.html" %}{% endblock %} IE CPCT Prototypes Select which version of the CPCT prototypes you would like to access Version 3 - Employer Consent question added as part of the journey to replace the wet signature part of the paper form About you question added to get details of who’s filling in the digital form Version 2 - Employer Understanding of user needs and pain points from observation & interviews Existing Digitise, Store and View user research and functionality The team’s experience with implementing self-upload functions Link to status screen Version 1 - Employer This was informed the Self-Upload Initial Discovery Similar worlds analysis (APVS, HMRC, HMPO, Private businesses) Research done with CPCT internals users and 2 employers Research done with UKVI internal users Version 1 - Viewer Initial version of the viewer prototype {% endblock %}
Select which version of the CPCT prototypes you would like to access


Open Source, Open Road
Matt Johnson / @xmatt / alleyinteractive.com
Pantheon Agency Summit, 2015
- Full-service digital agency: design, UX, development, content workflow strategy
- Founding member of Pantheon agency partner program
- Still have some unused Pantheon v1 invite codes (where do I redeem them?)
Some History
- I learned to program in my parents' basement in the 1990s.
- My first exposure to open source software was installing Linux on their PowerMac and experimenting with tools like gcc, Apache, MySQL and PHP.
- Open source means open access, and open season on creativity.
I met the co-founder of Alley Interactive in 2008 at Drupalcon Boston and he got me a job at the New York Observer.
The Observer has always been a ragtag operation. That's what it took to be willing to use Drupal in the late '00s as your CMS.
The world has changed a lot since 2008.
From Drupal to WordPress...
- We work with the media and content industry.
- Our mission is to bring creative open source solutions to that industry.
- Alley was founded 5 years ago and did only Drupal. Now we do only WordPress.
...and from hosting to design.
- Development has always been our most core service.
- Clients need us to get their site onto servers. Now that Pantheon's here, we can do it without spending our own time on servers.
- We've built a true value-add design and UX practice with those spare resources.
Freedom from hosting has been huge for us.
- It has let us focus management attention on defining our media sector focus.
- It has let us take the time to build a design and UX practice correctly.
- Frankly, it has let us spend time with our friends and families, and turn off our computers at night.
The open source future is bright
- Linux and its open source toolchain command the web server market; no one considers building a company like Pantheon on proprietary tools.
- We've made inroads with WordPress in big media that no one would've dreamed of in 2008.
The End
Have a great day!


Favorite Portland Weird Spots
To really experience this town of creatives and original thinkers, you should not miss these spots when you are breezing through town.
Powell's Books
Voodoo Donuts
Nike Portland
Saturday Market