<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
   
      <title>devalias.net</title>
   
   <link>https://www.devalias.net</link>
   <description>Follow me into the rabbit hole that is my mind and learn about topics including.. security, technology, efficiency, biohacking, health, personal growth and probably a whole lot more.</description>
   <language>en_GB</language>
   <managingEditor> </managingEditor>
   <atom:link href="rss" rel="self" type="application/rss+xml" />
   
	<item>
	  <title>GraphQL: Why You Should Care</title>
	  <link>/devalias/2016/09/07/graphql-why-you-should-care/</link>
	  <author>devalias</author>
	  <pubDate>2016-09-07T00:00:00+10:00</pubDate>
	  <guid>/devalias/2016/09/07/graphql-why-you-should-care/</guid>
	  <description><![CDATA[
	     <p>If you haven't yet come across <a href="http://graphql.org/">GraphQL</a>, it's kind of exciting stuff. It's a query language developed by <a href="https://code.facebook.com/posts/">Facebook</a>, that basically lets you request exactly the data you need for the given task; no more, no less. Sounds good right?</p>
<h2>Tell me more..</h2>
<p>If you like to get into the nitty gritty of tech specs, you can head over to the <a href="https://facebook.github.io/graphql/">GraphQL Working Draft</a> (<a href="https://github.com/facebook/graphql">GitHub</a>) to have a deeper read, then play around with the <a href="https://github.com/graphql/graphql-js">reference implementation</a> in JavaScript.</p>
<p>Though if specs aren't really your style, check out '<a href="https://learngraphql.com/">Learn GraphQL</a>' and give their free short course a run through. Should get you up to speed!</p>
<h2>Ok. I'm in!</h2>
<p>Excited? Want to dive into it? Need libraries for your particular tech stack? Head on over to the <a href="https://github.com/chentsulin/awesome-graphql">Awesome GraphQL</a> list. You're bound to find what you need!</p>
<p>For my particular tech palette I was after something <a href="http://scala-lang.org/">Scala'esque</a>, maybe some <a href="http://doc.akka.io/docs/akka/2.4/scala/http/">Akka-HTTP</a> to go with it. Seems I wasn't the only one! <a href="http://sangria-graphql.org/">Sangria</a> (<a href="https://github.com/sangria-graphql/sangria">GitHub</a>) is a Scala GraphQL implementation. They even have <a href="https://github.com/sangria-graphql/sangria-akka-http-example">an Akka-HTTP based example</a>. Perfect! Throw in a little <a href="https://github.com/sangria-graphql/sangria-relay">Relay support</a> and this package is pretty much complete.</p>
<p>If you're looking for an all-in-one stack heading forward, I keep seeing a lot of good things posted by the team at <a href="http://www.apollostack.com/">Apollo Stack</a> (by the <a href="https://www.meteor.com/">Meteor</a> team), so would most definitely recommend keeping an eye on them. They also post a lot of really good articles <a href="https://medium.com/apollo-stack">on their blog</a> too.</p>
<p>For some further reading, make sure to check out:</p>
<ul>
<li><a href="https://medium.com/apollo-stack/tutorial-building-a-graphql-server-cddaa023c035">&quot;Tutorial: How to build a GraphQL server&quot; by Jonas Helfer</a></li>
</ul>
<h2><a name="graphql-relay-redux"></a>GraphQL and Relay.. What about Redux?</h2>
<p>A lot of things you'll read about GraphQL on the net will talk about it quite closely with <a href="https://facebook.github.io/relay/">Relay</a>, and given they were both released by Facebook, and sort of designed to work together, it makes a lot of sense. That said, you most definitely don't need to use Relay to take advantage of the awesomeness GraphQL provides!</p>
<p>KADIRA states it pretty well in <a href="https://kadira.io/blog/graphql/graphql-vs-relay">GraphQL vs Relay</a>:</p>
<blockquote>
<p>GraphQL provides a way to model and expose data in your app. You can use it on top of any kind of data source and use it with any kind of transport layer.</p>
</blockquote>
<blockquote>
<p>Relay is an efficient client-side data-fetching technology built for React. It talks to a GraphQL Schema to get data. Relay also has a server-side part that adds some features on top of GraphQL.</p>
</blockquote>
<p>There is a bunch of talk about how Relay is currently a pain to use, but Facebook seems to be <a href="https://facebook.github.io/react/blog/2016/08/05/relay-state-of-the-state.html">well aware of this issue</a> and has future plans to make it much nicer to work with.</p>
<p>I think it's definitely worth keeping an eye on Relay in the future, but if you're not quite ready to jump in, you can always take advantage of the benefits of GraphQL while sticking to something like <a href="http://redux.js.org/">Redux</a> (<a href="https://github.com/reactjs/redux">GitHub</a>). For further reading:</p>
<ul>
<li><a href="https://www.reindex.io/blog/redux-and-relay/">&quot;Comparing Redux and Relay&quot; by Mikhail Novikov</a></li>
<li><a href="https://medium.com/@matt.krick/replacing-relay-with-redux-2990c81aa807">&quot;Replacing Relay with Redux&quot; by Matt Krick</a></li>
<li><a href="https://medium.com/@thisbejim/getting-started-with-redux-and-graphql-8384b3b25c56">&quot;Getting started with Redux and GraphQL&quot; by James Childs-Maidment</a></li>
<li><a href="http://www.apollostack.com/">Apollo Stack</a></li>
<li><a href="https://github.com/mattkrick/cashay">Cashay</a>: &quot;Relay for the rest of us&quot;</li>
<li><a href="https://github.com/gyzerok/adrenaline">Adrenaline</a>: &quot;Simple Relay alternative&quot;</li>
<li><a href="https://github.com/kennetpostigo/react-reach">React-Reach</a>: &quot;A small library for React to communicate with GraphQL&quot;</li>
</ul>
<h2>GraphQL vs Falcor</h2>
<p>So by now we should have a fairly good idea about what <a href="http://graphql.org/">GraphQL</a> is. So what's <a href="http://netflix.github.io/falcor/">Falcor</a>? This one comes from our friends over at <a href="http://techblog.netflix.com/">Netflix</a>. In essence, it turns all of your data sources into one giant JSON graph. Regardless of whether you're loading data remotely, have it cached locally, etc; you'll access it in the same way.</p>
<p>If you want to read deeper, I found these to be quite useful:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/32057785/what-is-the-difference-between-falcor-and-graphql">&quot;What is the difference between Falcor and GraphQL?&quot; on StackOverflow</a></li>
<li><a href="https://medium.com/apollo-stack/graphql-vs-falcor-4f1e9cbf7504">&quot;GraphQL vs. Falcor&quot; by Jonas Helfer</a></li>
<li><a href="http://react-etc.net/entry/beyond-rest-graphql-vs-falcor">&quot;Beyond REST: GraphQL vs. Falcor&quot; by React-Etc</a></li>
</ul>
<p>The consensus that I came to is that it seems to be on par with GraphQL in a number of ways, but is probably a bit easier to implement and a bit less powerful overall. Apparently you could even go so far as to <a href="http://hueypetersen.com/posts/2015/10/26/querying-graphql-with-falcor/">query GraphQL with Falcor</a>, but not the other way. For my purposes, I think I'll be sticking with GraphQL.</p>
<p>It's also worth noting that Facebook has been using various flavours of GraphQL for a few years now, whereas Netflix is yet to (or has only recently) started using Falcor in production.</p>
<h2>API's: REST, HATEOS, Observables.. GraphQL!</h2>
<p>I have read SO many articles over the years about the 'proper' way to design API's, and why styleX is so much better than styleY. With so much info out there, and so much conflicting advice (even within each supposed style), it's really easy to get stuck in analysis paralysis.</p>
<p>Greg Ziegan put together a <a href="https://medium.com/@gregoryziegan/how-graphql-taught-me-to-code-client-apps-1c631a9953bd">nice little article</a> talking about his progression along this path: from REST, through <a href="http://timelessrepo.com/haters-gonna-hateoas">HATEOS</a>, observables, etc; and how he ended up at GraphQL. Following on from this, Sashko Stubailo makes a pretty good argument about why GraphQL is <a href="https://medium.com/apollo-stack/graphql-the-next-generation-of-api-design-f24b1689756a">&quot;the next generation of API design&quot;</a>.</p>
<p>While the benefits of a GraphQL-based API seem pretty obvious to me, it's not always feasible to jump straight into shiny new tech. Maybe you need to support legacy services, interact with 3rd-party API's, or allow other developers to consume your API without them having to learn the ins and outs of GraphQL. But thankfully, we don't need to pick one over the other!</p>
<p>The GraphQL team have a pretty good article on their blog about <a href="http://graphql.org/blog/rest-api-graphql-wrapper/">wrapping REST API's in GraphQL</a>, starting purely with the client-side, and later moving it to the backend. This idea plays in SO well with some little side-projects I've been thinking about over the years, and how it could be used to help decompose and combine existing API's.</p>
<h2>Conclusion</h2>
<p>This is a scattering of the articles and things I have read through while learning more about GraphQL, and why it is so awesome. I definitely know it's a technology that I am super excited to start utilising in my future projects.</p>
<p>Have you come across any other awesome articles/tools related to GraphQL or similar? I'd love to hear about them! Let me know in the comments below.</p>

	  ]]></description>
	</item>

	<item>
	  <title>Syncing Facebook Bdays/Events with Other Calendars</title>
	  <link>/devalias/2011/10/17/syncing-facebook-bdaysevents-with-other-calendars/</link>
	  <author>devalias</author>
	  <pubDate>2011-10-17T07:39:00+11:00</pubDate>
	  <guid>/devalias/2011/10/17/syncing-facebook-bdaysevents-with-other-calendars/</guid>
	  <description><![CDATA[
	     <p>I'm sure i'm not alone when I say that without Facebook events/bdays I would be so much more out of the loop. A while ago I realised that I could subscribe to events/bday feeds in my external calendars (in this case, my iPhone). Best; Day; Ever! Suddenly I don't need to be at my computer to know what's going on, which for me is great since I tend to have the 'out of sight out of mind' mentality. Even if I looked at them this morning, ask me at midday and I won't remember a thing I have planned.</p>
<p>In any case, this stopped working for a while, and I finally got around to reenabling it yesterday, so figured I would make a quick post about how to find it for anyone else interested.</p>
<p>Hope you guys enjoy/find it useful! :)</p>
<h2>Facebook Event Feed</h2>
<ul>
<li>Go to <a href="http://www.facebook.com/events/">http://www.facebook.com/events/</a></li>
<li>Scroll to the bottom of the page</li>
<li>Click on the export link</li>
<li>Copy the webcal:// link</li>
<li>Go to your favourite calendar application and use it's subscribe feature, pasting in the copied link (on an iPhone if you just click the link it will add it for you)</li>
</ul>
<h2>Facebook Birthday Feed</h2>
<ul>
<li>Go to <a href="http://www.facebook.com/events/birthdays/">http://www.facebook.com/events/birthdays/</a></li>
<li>Scroll to the bottom of the page</li>
<li>Click on the export birthdays link</li>
<li>Copy the webcal:// link</li>
<li>Go to your favourite calendar application and use it's subscribe feature, pasting in the copied link (on an iPhone if you just click the link it will add it for you)</li>
</ul>

	  ]]></description>
	</item>

	<item>
	  <title>Facebook for iPhone v4.0</title>
	  <link>/devalias/2011/10/13/facebook-for-iphone-v4/</link>
	  <author>devalias</author>
	  <pubDate>2011-10-13T09:10:00+11:00</pubDate>
	  <guid>/devalias/2011/10/13/facebook-for-iphone-v4/</guid>
	  <description><![CDATA[
	     <p>I must say, I am quite impressed with the latest iteration of the Facebook app for iPhone. For a long time now, the app has felt sluggish, bloated, and kind of hacked together. No offence to the devs, it would be no easy task to build and maintain it, but sometimes you need a good overhaul to clean everything up, and maybe a new UI to freshen things a little. It seems this is exactly what we get with v4.0.</p>
<p>The interface has been completely overhauled, doing away with the old 'launcher' screen of icons, and moving to a more accesible and (I think) intuitive ''slide-out' sidebar. In doing this they have brought a much more fluid feel to the navigation, rather than having to constantly backtrack to the beginning to go elsewhere. This has also made it possible for them to maintain your location in the news feed as you dart in and out of photos, messages, etc.</p>
<p>Whether it's the more intuitive interface, a bunch of fine tuning, or a combination of, the latest app feels much quicker to respond and load everything. If you used the older apps then I think you will be quite impressed.  As with everything new, there are still a few bugs to iron out. The first time I tried to open the app it seemed to hang for a long time. Not sure if it was updating backend settings, etc or just froze. If the earlier, something more informative than a spinning ''busy' icon wouldn't go astray. I've also noticed a few areas (such as in the account settings) where it feels like the transition between pages isn't handled as well as it could be. Of most note here is the ability to generate a long ''backhistory trail of pages by clicking through the different account settings pages, as though we were following a nest of links deeper and deeper (rather than the flat menu they actually are)</p>
<p>Overall impressions? In the words of Facebook themselves.. Like! Well worth the upgrade, and looking forward to what they have in store for us in the updates to come.</p>

	  ]]></description>
	</item>


</channel>
</rss>
