{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Rhys","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/r","_microblog":{"about":"https://micro.blog/about/api","id":"101","username":"r","bio":"Developer, geek, and do-er of things.","pronouns":"","is_following":false,"is_you":false,"following_count":1,"discover_count":0},"author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://www.gravatar.com/avatar/1e91a01650875a1680dbc25042b36249?s=96&d=https%3A%2F%2Fmicro.blog%2Fimages%2Fblank_avatar.png"},"items":[{"id":"160998","content_html":"<p>Everything seems a little less pointless today. </p>\n","summary":"","url":"http://blog.lyptt.uk/2017/10/04/everything-seems-a.html","date_published":"2017-10-04T14:27:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-10-04 14:27","date_timestamp":1507127220,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"160997","content_html":"<p>I’ve been reflecting a lot today. It feels nice to take a break from work and look at my life in retrospect. It always feels like I’m not doing enough, but I rarely recognise just how much I’ve achieved. </p>\n","summary":"","url":"http://blog.lyptt.uk/2017/10/04/ive-been-reflecting.html","date_published":"2017-10-04T14:27:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-10-04 14:27","date_timestamp":1507127220,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"160269","content_html":" UI stuff \n\n<p>I wish there was a language for UI that goes above and beyond constraints and views in a way that’s suitable for today’s UIs.</p>\n\n<p>HTML, XIBs and Android XML layouts aren’t good enough. They feel like assembling a bag of elements rather than building a distinct screen. </p>\n","summary":"","url":"http://blog.lyptt.uk/2017/10/03/ui-stuffi-wish.html","date_published":"2017-10-03T13:15:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-10-03 13:15","date_timestamp":1507036500,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"160270","content_html":" UI stuff \n\n<p>I’ve gone back to building iOS screens purely in code. Storyboards still feel under-developed and you never really get to see your UI how it will appear in-app as interface builder has no concept of screen states. </p>\n","summary":"","url":"http://blog.lyptt.uk/2017/10/03/ui-stuffive-gone.html","date_published":"2017-10-03T13:11:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-10-03 13:11","date_timestamp":1507036260,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155886","content_html":"<p>This is also very pertinent: <a href=\"https://twitter.com/greggawatt/status/910622604603441152\">twitter.com/greggawat…</a></p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/this-is-also.html","date_published":"2017-09-27T07:18:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 07:18","date_timestamp":1506496680,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155828","content_html":" Trials and tribulations of open-source - 6 \n\n<p>None of this has any real point, I’m just ranting. Still, I’ve built something great that I’ll keep building on over time. Even if I’m the only one that’ll ever contribute to it.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/054037.html","date_published":"2017-09-27T05:40:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:40","date_timestamp":1506490800,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155829","content_html":" Trials and tribulations of open-source - 5 \n\n<p>I was one of those people once, but I realised eventally that the maintainers behind these projects have other responsibilities that don’t revolve around you. I realised how gratifying it is contributing to these projects yourself.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/053935.html","date_published":"2017-09-27T05:39:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:39","date_timestamp":1506490740,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155830","content_html":" Trials and tribulations of open-source - 4 \n\n<p>It’s always tricky with open source - the people behind these project spend their personal time giving you something for free, but for some people there’s an expectation that the maintainers should do everything asked of them.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/053827.html","date_published":"2017-09-27T05:38:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:38","date_timestamp":1506490680,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155831","content_html":" Trials and tribulations of open-source - 3 \n\n<p>My only other contributor went with him too.</p>\n\n<p>I know this probably happens in open source a lot, but it still feels pretty disappointing. I spent a long time figuring this all out, and now he’s just porting it to another language.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/053530.html","date_published":"2017-09-27T05:35:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:35","date_timestamp":1506490500,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155832","content_html":" Trials and tribulations of open-source - 2 \n\n<p>He filed a bunch of bug reports, which was brilliant and enabled me to make the project much better.</p>\n\n<p>But as expected I didn’t have time to add every feature he wanted, so instead of forking and filing PRs, he cloned my project.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/053415.html","date_published":"2017-09-27T05:34:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:34","date_timestamp":1506490440,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"155824","content_html":" Trials and tribulations of open-source - 1 \n\n<p>I maintain an open source project that’s fairly popular, and It’s gone through a patch of slow maintenance recently during a busy period in my career.</p>\n\n<p>During this time I encountered a person interested in trying out the project.</p>\n","summary":"","url":"http://blog.lyptt.uk/2017/09/27/trials-and-tribulations.html","date_published":"2017-09-27T05:33:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-09-27 05:33","date_timestamp":1506490380,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"56323","content_html":" Picking a modern JS Framework \n\n<p>Deciding on a decent framework for a web app in 2017 is pretty difficult. React is too greenfield, and feels like a thought experiment.</p>\n\n<p>I gravitate to Angular 1 due to its robust set of tooling and support, but surely there’s a better option? </p>","summary":"","url":"http://lyptt.micro.blog/2017/05/02/picking-a-modern.html","date_published":"2017-05-02T21:50:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-05-02 21:50","date_timestamp":1493761800,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36564","content_html":" Ops revival \n\n<p>At a previous job I was introduced to the wonderful world of DevOps, which I’m now making a career in. It’s been great working with top tier tooling like <a href=\"https://www.packer.io/\">Packer</a> and <a href=\"https://www.terraform.io/\">Terraform</a> again!</p>","summary":"","url":"http://lyptt.micro.blog/2017/04/28/ops-revivalat-a.html","date_published":"2017-04-28T20:01:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-28 20:01","date_timestamp":1493409660,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36560","content_html":" Ops revival \n\n<p>At a previous job I was introduced to the wonderful world of DevOps, which I’m now making a career in. It’s been great working with top tier tooling like <a href=\"https://www.packer.io/\">Packer</a> and <a href=\"https://www.terraform.io/\">Terraform</a> again!</p>","summary":"","url":"/2017/04/28/ops-revivalat-a.html","date_published":"2017-04-28T20:01:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-28 20:01","date_timestamp":1493409660,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"7935","content_html":" If I was told a few years ago Ruby would end up being my favourite language, I would’ve laughed. How times change… ","summary":"","url":"/2017/04/26/071415.html","date_published":"2017-04-26T07:14:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-26 07:14","date_timestamp":1493190840,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36565","content_html":" If I was told a few years ago Ruby would end up being my favourite language, I would’ve laughed. How times change… ","summary":"","url":"http://lyptt.micro.blog/2017/04/26/071415.html","date_published":"2017-04-26T07:14:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-26 07:14","date_timestamp":1493190840,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36566","content_html":" Proving out JS pre/post conditions \n\n<p>I created a <a href=\"https://gist.github.com/lyptt/222e077c77c1757d40e5005edec57dbf\">gist</a> based on my thoughts around pre/post conditions. It could definitely be simplified further, but I like the idea of separating out the validation like this.</p>","summary":"","url":"http://lyptt.micro.blog/2017/04/26/proving-out-js.html","date_published":"2017-04-26T06:39:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-26 06:39","date_timestamp":1493188740,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"7734","content_html":" Proving out JS pre/post conditions \n\n<p>I created a <a href=\"https://gist.github.com/lyptt/222e077c77c1757d40e5005edec57dbf\">gist</a> based on my thoughts around pre/post conditions. It could definitely be simplified further, but I like the idea of separating out the validation like this.</p>","summary":"","url":"/2017/04/26/proving-out-js.html","date_published":"2017-04-26T06:39:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-26 06:39","date_timestamp":1493188740,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36567","content_html":" Pre-conditions in JavaScript \n\n<p>When writing functions in JS you often find yourself doing a lot of parameter validation.</p>\n\n<p>It’d be great if you could have pre-conditions for functions so once your code is hit you have valid arguments. Could be a job for higher order functions.</p>","summary":"","url":"http://lyptt.micro.blog/2017/04/25/preconditions-in-javascriptwhen.html","date_published":"2017-04-25T17:54:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-25 17:54","date_timestamp":1493142840,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"3201","content_html":" Pre-conditions in JavaScript \n\n<p>When writing functions in JS you often find yourself doing a lot of parameter validation.</p>\n\n<p>It’d be great if you could have pre-conditions for functions so once your code is hit you have valid arguments. Could be a job for higher order functions.</p>","summary":"","url":"/2017/04/25/preconditions-in-javascriptwhen.html","date_published":"2017-04-25T17:54:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-25 17:54","date_timestamp":1493142840,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"36568","content_html":" Is this thing on? \n\n<p>I finally get the chance to try out Micro.blog. Exciting stuff!</p>","summary":"","url":"http://lyptt.micro.blog/2017/04/25/is-this-thing.html","date_published":"2017-04-25T05:00:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-25 05:00","date_timestamp":1493096400,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"2061","content_html":" Is this thing on? \n\n<p>I finally get the chance to try out Micro.blog. Exciting stuff!</p>","summary":"","url":"/2017/04/25/is-this-thing.html","date_published":"2017-04-25T05:00:00+00:00","author":{"name":"Rhys","url":"https://www.lyptt.uk","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F1e91a01650875a1680dbc25042b36249%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"r"}},"_microblog":{"date_relative":"2017-04-25 05:00","date_timestamp":1493096400,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}}]}