Deprecated: Optional parameter $content declared before required parameter $post is implicitly treated as a required parameter in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/functions.php on line 840
Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/wp-db.php on line 668
Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/wp-db.php on line 668
Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/wp-db.php on line 668
Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-theme.php on line 553
Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-theme.php on line 594
Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-theme.php on line 534
Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-theme.php on line 543
Warning: Private methods cannot be final as they are never overridden by other classes in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-session-tokens.php on line 69
Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/comment-template.php on line 1720
Deprecated: Optional parameter $object_id declared before required parameter $taxonomy is implicitly treated as a required parameter in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/nav-menu.php on line 1060
Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php on line 934
Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php on line 954
Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php on line 966
Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php on line 977
Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 151
Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 175
Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 164
Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 186
Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 138
Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 75
Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 89
Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 110
Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 127
Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/class-wp-block-list.php on line 199
Deprecated: Optional parameter $block_name declared before required parameter $block_content is implicitly treated as a required parameter in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/blocks.php on line 405
Deprecated: Creation of dynamic property WP_REST_Autosaves_Controller::$rest_namespace is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php on line 70
Deprecated: Creation of dynamic property WP_REST_Autosaves_Controller::$rest_namespace is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php on line 70
Deprecated: Creation of dynamic property WP_REST_Autosaves_Controller::$rest_namespace is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php on line 70
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/wp-db.php on line 3008
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
Warning: Cannot modify header information - headers already sent by (output started at /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-request.php:29) in /vhost/r/o/t/rottedfrog.co.uk/www/wp-includes/rest-api/class-wp-rest-server.php on line 1378
{"id":15,"date":"2014-03-02T20:12:26","date_gmt":"2014-03-02T20:12:26","guid":{"rendered":"http:\/\/www.rottedfrog.co.uk\/?p=15"},"modified":"2014-03-02T20:13:09","modified_gmt":"2014-03-02T20:13:09","slug":"angular-js-makes-web-dev-fun","status":"publish","type":"post","link":"https:\/\/www.rottedfrog.co.uk\/?p=15","title":{"rendered":"Angular JS – Makes Web Dev fun?"},"content":{"rendered":"Now I’m a proponent of native software over web, and have been for a long time. My reasons have long been straightforward.
\n1. The user experience is much better.
\n2. The dev frameworks and experience are much<\/strong> better.
\n3. I don’t have to soil my hands with JavaScript on the desktop.<\/p>\nPoints 1 and 2 are regularly eroded, to the point where it’s becoming interesting to me again. Point 3 is, alas, going in the wrong direction, with JavaScript now the Lingua Franca of the web. It could have been VBScript, so we should be thankful for small mercies.<\/p>\n
I decided to rewrite an old silverlight app in HTML5 this weekend. This was partly due to a jab from someone at work (it’s an internally facing wiki I wrote a few years ago), and partly due to it being an excuse to try out Angular JS – an MVVM framework for HTML5 app dev. I’m seriously impressed. It’s a really smart script and moves all the templatibg you normally do server side using frameworks like Razor to the browser.<\/p>\n
The best thing about it is how little JavaScript I needed to write to do it. I rewrote my silverlight app, front end and back in less time and much less code, and the result is much more responsive. The downside is that most people at work use primitive outdated browsers like IE8 which my beautiful flexbox layouts will not tolerate. So before release I may need to wire in some feature sniffing and write some facetious comments people using backwards browsers.<\/p>\n","protected":false},"excerpt":{"rendered":"
Now I’m a proponent of native software over web, and have been for a long time. My reasons have long been straightforward. 1. The user experience is much better. 2. The dev frameworks and experience are much better. 3. I don’t have to soil my hands with JavaScript on the desktop. Points 1 and 2 … <\/p>\n
Continue reading “Angular JS – Makes Web Dev fun?”<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/15"}],"collection":[{"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":1,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":16,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/15\/revisions\/16"}],"wp:attachment":[{"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rottedfrog.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}