<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan</title>
    <description>The latest articles on DEV Community by Ryan (@ohryan).</description>
    <link>https://dev.to/ohryan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F187829%2Fe759eaf3-2992-40a7-bd51-28dadfa6eb50.png</url>
      <title>DEV Community: Ryan</title>
      <link>https://dev.to/ohryan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ohryan"/>
    <language>en</language>
    <item>
      <title>How can I volunteer my extra time while self-isolating due to COVID-19?</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Thu, 12 Mar 2020 23:05:34 +0000</pubDate>
      <link>https://dev.to/ohryan/how-can-i-volunteer-my-extra-time-while-self-isolating-due-to-covid-19-4lej</link>
      <guid>https://dev.to/ohryan/how-can-i-volunteer-my-extra-time-while-self-isolating-due-to-covid-19-4lej</guid>
      <description>&lt;p&gt;My place of work has made the decision to implement working from home starting tomorrow. And most of the country, if now the world is likely to do the same. &lt;/p&gt;

&lt;p&gt;Skipping the daily commute by working from home will unlock a bunch of free time for most of us. &lt;/p&gt;

&lt;p&gt;I'm wondering if anybody has any interesting or creative suggestions for how to volunteer or time online.&lt;/p&gt;

&lt;p&gt;Contributing to your favourite open source project seems like a nobrainer.&lt;/p&gt;

&lt;p&gt;How about for non-developers? &lt;/p&gt;

&lt;p&gt;I've heard people suggest editing Wikipedia.&lt;/p&gt;

&lt;p&gt;What other ideas can we come up with?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Services Should Help Us Remember</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Wed, 01 Jan 2020 19:22:12 +0000</pubDate>
      <link>https://dev.to/ohryan/services-should-help-us-remember-1ef0</link>
      <guid>https://dev.to/ohryan/services-should-help-us-remember-1ef0</guid>
      <description>&lt;p&gt;With the beginning of a new &lt;del&gt;year&lt;/del&gt; decade everybody is posting retrospectives on anything and everything. For the most part, these retrospectives have to be complied manually by compiling data from different sources. I’d argue that our lives would be more interesting if more services give us easier ways to reflect on the content we’ve posted over the decades.&lt;/p&gt;

&lt;p&gt;In fact, services could probably get away with collecting more sensitive data if they surfaced it for us in interesting ways. For instance (&lt;a href="https://www.nytimes.com/interactive/2019/12/19/opinion/location-tracking-cell-phone.html" rel="noopener noreferrer"&gt;despite my better judgement&lt;/a&gt;) I’ve had Google’s location tracking fully enabled for the past 3 years. The &lt;a href="https://www.google.com/maps/timeline" rel="noopener noreferrer"&gt;Google Maps timeline&lt;/a&gt; generates this map of everywhere I’ve been that is just totally fascinating to me. I can’t bring myself to turn if off.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Fohryan.ca%2Fwp-content%2Fuploads%2F2020%2F01%2Fimage.png%3Fw%3D1100%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Fohryan.ca%2Fwp-content%2Fuploads%2F2020%2F01%2Fimage.png%3Fw%3D1100%26ssl%3D1"&gt;&lt;/a&gt;Everywhere I’ve been in the past 3 years according to Google. It’s actually missing some data and I’ve never been near Detroit. So that’s somewhat comforting in a way.&lt;/p&gt;

&lt;h2&gt;
  
  
  An Experiment
&lt;/h2&gt;

&lt;p&gt;This week, I started an experiment where I will be logging every single interesting link I come across online in a public twitter feed.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1212077954072637440-183" src="https://platform.twitter.com/embed/Tweet.html?id=1212077954072637440"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1212077954072637440-183');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1212077954072637440&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;It would be cool to see what happened if browsers tried to include a feature like this using your local browser history. &lt;em&gt;(I’m getting deja vu, was there a web 2.0 era browser that did something like this?)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WordPress Historical Posts
&lt;/h2&gt;

&lt;p&gt;A few years back I created a WordPress plugin that surfaces old posts in dashboard and sidebar widgets (you can see it in the footer of my blog if you scroll down). IMHO any blogger with more than a couple of years of content could benefit from this plugin. I love seeing what I posted a decade ago. Occasionally it spawns new or update post ideas.&lt;/p&gt;

&lt;p&gt;The plugin is called Historian, you can &lt;a href="https://wordpress.org/plugins/retroposts/" rel="noopener noreferrer"&gt;download it from the plugin repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Services
&lt;/h2&gt;

&lt;p&gt;I know the photo services have started adding “on this day” and “then and now” features to their main products. I personally enjoy those quite a bit. Seeing my kids grow up is an acceptable of inherently anti-piracy facial recognition.&lt;/p&gt;

&lt;p&gt;I mentioned Google Maps Timelines as another acceptable reasons to leak private data. But I actually think Google could do more with this data, especially on Android. It would be cool to automatically see all the times I’ve been at my current location and any photos or related data that I’ve logged there. Google Health could have workout data (and analysis) automatically available when I’m at the gym. Stuff like that.&lt;/p&gt;

&lt;p&gt;Are there other services that have interesting retrospective features?&lt;/p&gt;

&lt;p&gt;Would you be more open to giving up private data if services gave you interesting or useful data and analysis based on you private data?&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Do you delete Git branches?</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Thu, 28 Nov 2019 20:33:04 +0000</pubDate>
      <link>https://dev.to/ohryan/do-you-delete-git-branches-1g14</link>
      <guid>https://dev.to/ohryan/do-you-delete-git-branches-1g14</guid>
      <description>&lt;p&gt;At my place of employment we use Jira ticket numbers in our git branches so that we can take advantage of the ticket-to-code-linking magic.&lt;/p&gt;

&lt;p&gt;But as a projects grows, the number of remote branches gets kind of insane. I suppose this doesn't affect performance or anything. It's just a little unsightly and makes it difficult when you need to go hunting for remote branches. &lt;/p&gt;

&lt;p&gt;What are best practices here? &lt;/p&gt;

&lt;p&gt;Delete local branches and keep the remotes?&lt;/p&gt;

&lt;p&gt;Delete remote branches and lose the Jira link on historical tickets? &lt;/p&gt;

</description>
      <category>git</category>
      <category>workflow</category>
      <category>discuss</category>
      <category>jira</category>
    </item>
    <item>
      <title>My Coding Origin Story</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Fri, 15 Nov 2019 04:25:05 +0000</pubDate>
      <link>https://dev.to/ohryan/my-coding-origin-story-3jm7</link>
      <guid>https://dev.to/ohryan/my-coding-origin-story-3jm7</guid>
      <description>&lt;p&gt;Earlier today Ben Halpern posted a bit about &lt;a href="https://dev.to/ben/i-have-some-bad-habits-that-date-back-to-my-days-making-geocities-websites-before-css-was-much-of-a-thing-496c"&gt;his coding origin story on dev.to&lt;/a&gt;. I thought it might be interesting to share how I got my start.&lt;/p&gt;

&lt;p&gt;Growing my family was not an early computer adopter. Computers were expensive and my parents were endlessly frugal. So I don’t share the common origin story for a lot of nerds of my generation, I never noodled around with a Commodore 64 or anything of that era.&lt;/p&gt;

&lt;p&gt;My first exposure to computer programming was writing simple routines in &lt;a href="https://en.wikipedia.org/wiki/Logo_(programming_language)"&gt;Logo&lt;/a&gt;on an Apple IIe in grade 6. Logo was very simple, but super valuable as a fundamental building block. My experience taught me the basics of looping and the idea of printing things to the screen and it certainly piqued my interest in programming at an early age.&lt;/p&gt;

&lt;p&gt;The next code adjacent thing I remember doing was mucking around with the Windows 3.1 autoexec.bat file on my grandfather’s 386 laptop (which he had left with me for some reason), probably circa 1993. Pre-Internet I have no idea how I knew this was a file I could edit, what it did or what to do with it. Perhaps I read the MS-DOS help files. One thing I did learn quickly is that this file had the power to stop Windows from booting. And this actually taught me the important lesson of remaining calm in the face of utter, self-inflicted code disasters.&lt;/p&gt;

&lt;p&gt;My coding memory is a huge one. It happened when my family finally got our first PC, a Compaq Presario 486, probably around 1994/95. Again, I don’t recall exactly how, but I soon discovered &lt;a href="https://en.wikipedia.org/wiki/Bulletin_board_system"&gt;BBSes&lt;/a&gt;and &lt;a href="https://www.pcmag.com/feature/340587/the-forgotten-world-of-bbs-door-games"&gt;door games&lt;/a&gt;. My favourite game by far was Legend of the Red Dragon (&lt;a href="http://lord.lordlegacy.com/"&gt;playable here&lt;/a&gt;). At this same time, I’d started to dive in to qBASIC. I poured through the source code of the demo programs and read through the included documentation. For some reason I decided to attempt to recreate a local version of LORD in qBASIC — except Star Trek: The Next Generation Themed (of course). I built an ASCII interface, ASCII procedural map generator, random encounters and a rudimentary combat system, a town with shops (armour, weapons and potions), system for tracking progress (goal, xp and levels) and that sort of thing. I retrospect, this seems like a monumental task, something I’d never even think to attempt now. With this experience, I had essentially taught myself all the fundamentals of programing I still use today: procedures, variables, control structures, logic, etc.&lt;/p&gt;

&lt;p&gt;My first experience with HTML is probably a little more similar to other developers of my generator — Geocities and Netscape circa 1997. I distinctly remember the first website I built on geocities.com, a &lt;a href="https://www.starwarsccg.org/"&gt;Star Wars: CCG&lt;/a&gt; “bad trader” list — basically a blacklist of people who’d screwed my friend Jon out of cards online — an HTML table on a repeating star background (groundbreaking stuff!). Having worked with the pre-written example programs source code that shipped with qBASIC years prior, the leap to view source on every single website came naturally. And by this time there were already well developed resources for learning HTML online.&lt;/p&gt;

&lt;p&gt;I’m actually a little less certain about my introduction to PHP. I think it may have been Movable Type of my first domain (leggomyeggo.net).&lt;/p&gt;

&lt;p&gt;Sprinkled here and there is some formal education and the rest — as they say — is history.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://ohryan.ca/2019/11/14/my-coding-origin-story/"&gt;My Coding Origin Story&lt;/a&gt; appeared first on &lt;a href="https://ohryan.ca"&gt;ohryan.ca&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>originstory</category>
      <category>beginning</category>
    </item>
    <item>
      <title>What are your thoughts on functional programming? In PHP?</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Tue, 15 Oct 2019 00:24:24 +0000</pubDate>
      <link>https://dev.to/ohryan/what-are-your-thoughts-on-functional-programming-in-php-33f6</link>
      <guid>https://dev.to/ohryan/what-are-your-thoughts-on-functional-programming-in-php-33f6</guid>
      <description>&lt;p&gt;A friend of mine introduced me to the concept of functional programming this weekend. As someone who's been writing procedural PHP since before PHP supported objects and then gradually transitioned to an OOP-based mindset, the concept of functional programming is kind of blowing my mind. &lt;/p&gt;

&lt;h1&gt;
  
  
  For those of you unfamiliar with functional programming in PHP...
&lt;/h1&gt;

&lt;p&gt;&lt;a class="comment-mentioned-user" href="https://dev.to/davidbhayes"&gt;@davidbhayes&lt;/a&gt;
' video on banishing loops with functional programming is a good primary on the basic concept.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/n0Qi5Fz4SXM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  If you are more familiar with functional programming in PHP...
&lt;/h1&gt;

&lt;p&gt;I have some question:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what are some of the main benefits?&lt;/li&gt;
&lt;li&gt;is it mostly about simplifying loops? &lt;/li&gt;
&lt;li&gt;any examples of projects that make good use of functional programming? github links?&lt;/li&gt;
&lt;li&gt;what are the main drawbacks? gotchas?&lt;/li&gt;
&lt;li&gt;Is OOP on its way out? &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I haven't been this intrigued by a programming concept in a while. Super curiosu what the dev.to community thinks!&lt;/p&gt;

</description>
      <category>php</category>
      <category>functional</category>
      <category>oop</category>
      <category>discuss</category>
    </item>
    <item>
      <title>SQRL Poised To Save Us From Password Hell</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Wed, 09 Oct 2019 04:23:43 +0000</pubDate>
      <link>https://dev.to/ohryan/sqrl-poised-to-save-us-from-password-hell-2cbj</link>
      <guid>https://dev.to/ohryan/sqrl-poised-to-save-us-from-password-hell-2cbj</guid>
      <description>&lt;p&gt;A few times every decade we get to witness the emergence of a truly revolutionary back-end technology breakthrough. I recall following OpenID in the mid-00’s, reading some of the early discussion groups and blog posts, eventually watching it become supplanted by OAuth. Which would go on to drastically simplify the way most people log in to websites. I wonder if we’re witness a moment like that right now with the Simple, Quick, Reliable Login (SQRL) protocol.&lt;/p&gt;

&lt;p&gt;SQRL is a decentralized website login and authentication protocol released last week after over half a decade of work, by security researcher &lt;a href="https://en.wikipedia.org/wiki/Steve_Gibson_(computer_programmer)"&gt;Steve Gibson&lt;/a&gt;. It is a protocol that functions like a combination of OAuth and a password manager. Like OAuth, it enables a 1 button (or QR code) login process, simply click an “authenticate with sqrl” link and you’re in. Like a password manager, it is an app that lives on your phone, desktop or a browser extension.&lt;/p&gt;

&lt;p&gt;Unlike either of those solutions, the process that occurs in the background after you hit “authenticate” and before you’re logged in is where _ &lt;strong&gt;really groundbreaking stuff&lt;/strong&gt; _ happens.&lt;/p&gt;

&lt;p&gt;SQRL is &lt;em&gt;client-side&lt;/em&gt; authentication, meaning an SQRL client (on your phone, as desktop app or maybe a system service in future) negotiates with the &lt;em&gt;server&lt;/em&gt; to validate your authentication. Let that sink in for a second… you don’t tell the server who you are or what your password is, the server ostensibly communicates with your phone to figure out who you are. The nuts and bolts of this system are complicated/technical and I’m not actually sure I fully grasp it at this point. But I do know this has the potential to be huge.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Short List of Benefits
&lt;/h2&gt;

&lt;p&gt;The client-side approach has several unique advantages and eliminates many of the problems with the current username/password schema:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The server does not store your password (zero-proof)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Not only does it not store your password, the server never interacts with your password in any way. We all know websites really suck at keeping your passwords safe and secret and reusing passwords in 2019 is extremely dangerous. With SQRL only the client app has a password (and it’s highly encrypted).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The server does not know who you are&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
As far as the technical spec goes, the server does not need a username, email address, facebook id, google account, etc to identify you. It only needs are random public key.   &lt;/p&gt;

&lt;p&gt;In practice, it a website my ask you to provide a username, but because of the pseudonymous nature of SQRL, the site would have no way of knowing that “ohryan” means “guy who write on ohryan.ca” who is also &lt;a class="comment-mentioned-user" href="https://dev.to/ohryan"&gt;@ohryan&lt;/a&gt;
 on Twitter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can’t be tracked&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Because SQRL generates unique public keys on a per domain basis, the protocol does not enable cross-site tracking in the same way as something like OAuth does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your identity can’t be hacked&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A centralized system like a password manager or an OAuth provider lives in the cloud, so there is always a remote possibility of a massive breach exposing your master password on any given service. With SQRL, your identity stays in the client which is in hardware in your pocket, not one central source that every hacker in the universe can target.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s open&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
SQRL is an open standard. Anybody can create a client, with any additional bells, whistles and improvement they want (including addressing some of the security concerns I talk about below). Apple/Windows/Google could add native OS support. The world’s smartest security researcher can all contribute to the project, write server-side implementations, etc, etc.&lt;/p&gt;




&lt;h2&gt;
  
  
  Some Concerns
&lt;/h2&gt;

&lt;p&gt;In my opinion, based on my understanding of the protocol today, SQRL has one really big problem and a few smaller problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Major Concern: No Deauthorization Mechanism
&lt;/h3&gt;

&lt;p&gt;Simply put, if you lose control of your SQRL identity (say your phone is stolen) the protocol has no way to invalidate the authorizations you’ve given to websites with the stolen identity. It has no way to block an attacker from accessing those sites with your stolen identity (assuming the attacker also has access to your phone password and your SQRL client password). The protocol &lt;em&gt;does&lt;/em&gt; have a really robust set of mechanisms to retrieve your identity (including something like the bitcoin paper key system), so you will ultimately not lose access to those sites. But the way the protocol is setup, it is only once you access the site with your recovered identity that the site will learn to distrust your old identity.&lt;/p&gt;

&lt;p&gt;Unlike Oauth, where a password reset triggers deauthentication across all previously authorized site. With SQRL, you would have to manually visit each authorized site to deauthorize that stolen identity.&lt;/p&gt;

&lt;p&gt;So in this way, SQRL actually behaves somewhat like a password manager. If you lose a device that contains access to a 1password library you’d be similarly screwed. To be 100% secure, you would have to manually reset the passwords on all the hundreds of sites you’d stored in your password manager. Fortunately, in both the cases a thief is unlikely to knowledge of your master password. I just feel like this is a real concern that the Gibson dismisses or doesn’t take as seriously as he should.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minor Concerns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Phishing is sorta trivial
&lt;/h4&gt;

&lt;p&gt;Since SQRL depends on the user being able to scan arbitrary QR codes to gain access to a site. It’s conceivable to imagine a scenario in which a bad actor could impersonate your bank, create a fake SQRL QR code at &lt;a href="http://www.mybankk.com"&gt;www.mybankk.com&lt;/a&gt;, hope you don’t notice the misspelling and then subsequently ask for your banking info and steal all your money once you’re in.   &lt;/p&gt;

&lt;p&gt;The thing is, OAuth is vulnerable to this same type of phishing attempt. A creative bad actor could spoof the entire “sign in with google” process and if the user is not paying close attention to domain name, then the user would be clueless about the spoof.   &lt;/p&gt;

&lt;p&gt;Hell, I bet there are chat logs between me and &lt;a href="https://keybase.io/notian"&gt;notian&lt;/a&gt;discussing this very thing when OpenID first started bubbling up.   &lt;/p&gt;

&lt;p&gt;To my knowledge these types of phishing attempts never materialized against OpenID or OAuth (though I could be wrong).&lt;/p&gt;

&lt;p&gt;At worst SQRL is no worse than the status quo. At best SQRL clients may be in a unique position to improve this situation (though there idea to harden SQRL against this attack by using IP addresses is a non-starter IMHO, but I won’t get in to that here).&lt;/p&gt;

&lt;h4&gt;
  
  
  Malicious Clients
&lt;/h4&gt;

&lt;p&gt;Since SQRL is an open standard any random bad actor could create a malicious client to do malicious things, like stealing your password.&lt;/p&gt;

&lt;p&gt;The best solution to this problem is to make the “official” the best possible app, such that the poor quality, slapped-together nature of malicious apps will be obvious. Unfortunately, I’m afraid this will require a real development investment and it’s not clear anyone is willing to pick up the tab.&lt;/p&gt;

&lt;p&gt;The project has a long way to go to get there, but then again, it’s essentially day one.&lt;/p&gt;

&lt;p&gt;New paradigm&lt;/p&gt;

&lt;p&gt;This final concern isn’t really a problem with SQRL as a protocol. It’s more that… We’ve had decades of trying to teach mom &amp;amp; pop how to use usernames and passwords safely and it’s really not going very well. Getting them to adopt a brand new paradigm is going to be hard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;First of all, if you’re read this far and you haven’t tried it out. Do it now. Grab on of the apps and try logging in to the official forms at &lt;a href="https://sqrl.grc.com/"&gt;https://sqrl.grc.com/&lt;/a&gt;. It will blow your mind.&lt;/p&gt;

&lt;p&gt;SQRL seems to be the password solution I’ve always wanted. The concept of decentralization seems inherently right and good, it feels like the natural state of the internet. Decentralization by way of having an on your phone store the sensitive data and do the hard computation, just makes, so, much, sense.&lt;/p&gt;

&lt;p&gt;It’s hard to say where this technology will end up. I know Gibson is seen as a bit of a fringe wonk in some circles. I’m very interested to see what real security experts have to say, both about the implementation as well as the underlying crypto.&lt;/p&gt;

&lt;p&gt;If it’s as good as it seems, this could be huge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Viewing/Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://youtu.be/CviwNXAH1lk"&gt;Steve Gibson presenting the concept in 2014 (44mins)&lt;/a&gt;
A good, relatively short overview of the concept, though some of the details have changed in the intervening years.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=Y6J1Yt8YYj0"&gt;Steve Gibson’s release presentation, Sept 2019 (140mins)&lt;/a&gt;
Much of the same material as above, just with more nitty-gritty technical detail&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://security.stackexchange.com/questions/43374/could-sqrl-really-be-as-secure-as-they-say"&gt;Could SQRL really be as secure as they say? – stackoverflow 2013&lt;/a&gt;
A good critique of the concept. A few of the problems have been address in draft version of the protocol out now.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sqrl.grc.com"&gt;SQRL Forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/SQRL"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The post &lt;a href="https://ohryan.ca/2019/10/08/sqrl-poised-to-save-us-from-password-hell/"&gt;SQRL Poised To Save Us From Password Hell&lt;/a&gt; appeared first on &lt;a href="https://ohryan.ca"&gt;ohryan.ca&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>security</category>
      <category>sqrl</category>
      <category>protocols</category>
    </item>
    <item>
      <title>Cycling, Javascript and Saving the Planet</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Sun, 08 Sep 2019 22:20:51 +0000</pubDate>
      <link>https://dev.to/ohryan/cycling-javascript-and-saving-the-planet-58ca</link>
      <guid>https://dev.to/ohryan/cycling-javascript-and-saving-the-planet-58ca</guid>
      <description>&lt;p&gt;A few weeks ago I bought a basic road bike with the intention of cycling to work. And I’m totally hooked! Addicted maybe? I think I finally &lt;em&gt;get&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;My primary reason for biking to work is to level up the amount of exercise I get in every week, but I’m aware that leaving the car at home has some obvious side effects. By burning less gasoline I’m obviously saving some money and I’m keeping some amount of carbon out of the air.&lt;/p&gt;

&lt;p&gt;Meanwhile, I’ve been looking for a good practical way to level up my vue.js skills. So I challenged myself to build a simple tool in vue.js to help me quantify just how much CO2 I’m leaving in the tank and how much money I’m leaving in my wallet.&lt;/p&gt;

&lt;p&gt;The result &lt;a href="https://biketoworkcalculator.com"&gt;biketoworkcalculator.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://biketoworkcalculator.com"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VGRHMeQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/ohryan.ca/wp-content/uploads/2019/09/Screenshot_2019-09-08-Bike-To-Work-Calculator.png%3Fw%3D1100%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a dead simple tool that allows you to roughly calculate CO2 and dollars you save by riding a bike. Check it out for yourself.&lt;/p&gt;

&lt;p&gt;I was actually quite surprised that biking only one day per week would save me around $10 in gasoline over the course of a month.&lt;/p&gt;




&lt;p&gt;If you’d like to look at the code or correct my math or whatever, it’s up on github: &lt;a href="https://github.com/ohryan/biketoworkcalculator"&gt;https://github.com/ohryan/biketoworkcalculator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh and if you’re in to cycling, follow me on &lt;a href="https://www.strava.com/athletes/41148252"&gt;Strava&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://ohryan.ca/2019/09/08/cycling-javascript-and-saving-the-planet/"&gt;Cycling, Javascript and Saving the Planet&lt;/a&gt; appeared first on &lt;a href="https://ohryan.ca"&gt;ohryan.ca&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cycling</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Three of the greatest things of all time… this week…</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Thu, 15 Aug 2019 00:53:30 +0000</pubDate>
      <link>https://dev.to/ohryan/three-of-the-greatest-things-of-all-time-this-week-2c6g</link>
      <guid>https://dev.to/ohryan/three-of-the-greatest-things-of-all-time-this-week-2c6g</guid>
      <description>&lt;p&gt;This past week I’ve made three minor tech-adjacent discoveries that have the potential to change my life in small but important ways.&lt;/p&gt;

&lt;p&gt;None of these are groundbreaking on their own, but together they’re actually making me a little excited about “tech” again. In sort of a strange way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stoop
&lt;/h2&gt;

&lt;p&gt;I’ve always had two related problems with email newsletters. They clutter up my inbox and I never end up reading any of them. Because of this I actively avoid subscribing to newsletters and often unsubscribe to newsletters randomly. Stoop solves this problem in the best way possible.&lt;/p&gt;

&lt;p&gt;Stoop in an app for reading newsletter. Like a podcatcher but for text.&lt;/p&gt;

&lt;p&gt;Stoop gives you an &lt;code&gt;@stoopinbox.com&lt;/code&gt; email address, which you’ll use to sign up for newsletters. It then receives in them like any other email services, except with a UI tailor to newsletter consumption.&lt;/p&gt;

&lt;p&gt;It goes a long way to de-clutter your inbox and gives you a distraction free newsletter reading experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stoopinbox.com/#Join"&gt;Get it here →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kindle Fire Tablet 7th Edition
&lt;/h2&gt;

&lt;p&gt;A couple of years ago my two boys each received Kindle fire tablets as Christmas gifts. As kids do, they promptly forgot them and abandoned them in a pile of clutter.&lt;/p&gt;

&lt;p&gt;I’ve been meaning to read more, for years and year. I’ve only been meaning to read more books proper; but also all those Pocket links I stow away and forget about; and those cool newletters everyone is always recommending &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CDd67yc0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f609.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CDd67yc0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f609.png" alt="😉"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Digital reading has always been a bit of a Goldilocks problem for me. Desktop computer screens are too big; iPads are a little big (great for magazines though) and too heavy to hold up in bed for an hour; phone screens are too small and distracting.&lt;/p&gt;

&lt;p&gt;Then I remembered the Fire Tablets.&lt;/p&gt;

&lt;p&gt;They’re prefect! Roughly the same height, width and most importantly &lt;em&gt;weight&lt;/em&gt; as a paperback novel. Battery life is great and screen resolution is acceptable. You can side-load the Google play store and get most apps. But I’m keeping mine limited to reading apps to maintain a distraction free, reading-focused environment.&lt;/p&gt;

&lt;p&gt;I’ve been making a conscious effort to pick up the Fire instead of my phone whenever I want to read Google News or that sort of thing.&lt;/p&gt;

&lt;p&gt;Its only (minor) shortcoming is speed. The hardware is old and sluggish. Web browsing is a pain, changing context is slow. But flipping and scroll pages is fast enough. And you could almost spin the sluggishness as a positive, since it discourages you from change contexts and helps focus on what you’re currently reading.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.ca/fire-7-tablet/dp/B07JQP2C3X/ref=sr_1_1?keywords=kindle+fire&amp;amp;qid=1565829096&amp;amp;s=gateway&amp;amp;sr=8-1"&gt;Apparently you can still but the Fire 7 →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  KOHO
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;I can assure you this is not an ad! But I do have a referral code ZL5RTDVQ if you end up using this&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I feel a little weird talking about a financial product, so I’m going to keep this a short as possible.&lt;/p&gt;

&lt;p&gt;I was chatting with &lt;a href="https://twitter.com/levisan"&gt;Internet Good Guy Levisan&lt;/a&gt; around the time the Apple Card “unboxing” videos started popping out, commenting on how &lt;a href="http://reddit.com/r/latestagecaitalism"&gt;r/latestagecapitalism&lt;/a&gt; they were. He mentioned KOHO, on account of it also having a metal card.&lt;/p&gt;

&lt;p&gt;KOHO is an app-based prepaid VISA that offers 0.05% cashback on all purchases (2% on &lt;em&gt;some&lt;/em&gt; purchases if you pay for “premium”) and has none of the lame fees that you’d expect from a one time used pre-paid visa you might buy as a “gift card.”&lt;/p&gt;

&lt;p&gt;It also offers a “virtual” card in the app for online payments. One that you can turn off if your accounts get pwn’d. AFAIK virtual cards have been rare in the Canadian market before now.&lt;/p&gt;

&lt;p&gt;Also you can feed the card with Interac E-transfers.&lt;/p&gt;

&lt;p&gt;KOHO feels like it might be a way to get some of the benefits of Apple’s Credit card, without burring yourself even deeper into Apple’s ecosystem.&lt;/p&gt;

&lt;p&gt;It’s early days but I’m optimistic that this will improve my financial health. Especially since it’s pre-paid only and there is &lt;em&gt;no&lt;/em&gt; way to carry a negative balance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.koho.ca/"&gt;Get it here →&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;There you have it. Three things that are blowing my mind this week. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" alt="🤯"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" alt="🤯"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RaTgUdk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f92f.png" alt="🤯"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s exciting you right now?&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://ohryan.ca/2019/08/14/three-of-the-greatest-things-of-all-time-this-week/"&gt;Three of the greatest things of all time… this week…&lt;/a&gt; appeared first on &lt;a href="https://ohryan.ca"&gt;ohryan.ca&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>random</category>
    </item>
    <item>
      <title>How to receive email in 2019?</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Tue, 06 Aug 2019 22:38:51 +0000</pubDate>
      <link>https://dev.to/ohryan/how-to-receive-email-in-2019-1lm4</link>
      <guid>https://dev.to/ohryan/how-to-receive-email-in-2019-1lm4</guid>
      <description>&lt;p&gt;I have an idea for a project which has a component that involves receiving and processing email. &lt;/p&gt;

&lt;p&gt;I'm largely a PHP dev and I know PHP is probably a bad choice for this task, plus I'd like to broaden my knowledge-base anyways.&lt;/p&gt;

&lt;p&gt;Any suggestions for a modern way to handle receiving email?&lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>Dev.to: The most Pleasant Online Community.</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Sun, 28 Jul 2019 22:58:47 +0000</pubDate>
      <link>https://dev.to/ohryan/dev-to-the-most-pleasant-online-community-4d43</link>
      <guid>https://dev.to/ohryan/dev-to-the-most-pleasant-online-community-4d43</guid>
      <description>&lt;p&gt;Earlier this year, the developer centric social network &lt;a href="https://dev.to/"&gt;DEV&lt;/a&gt; started popping up regularly in the portions of The Internet I frequent. And for the past month or so, I’ve been loading up the home page almost as frequently as Reddit.&lt;/p&gt;

&lt;p&gt;The site itself is like some sort of impossible hybrid combination of Twitter, Stackoverflow and Livejournal. They describe themselves as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where programmers share ideas and help each other grow. It is an online community for sharing and discovering great ideas, having debates, and making friends.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In function&lt;/strong&gt; , it’s a blogging platform much like every blogging platform that is come before LiveJournal, blogspot, tumblr, medium, etc. With a markdown-based editor which I assuming is intentionally “programmy” to make developers feel at home.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Unlike&lt;/em&gt;&lt;/strong&gt; blogging platforms that have come before, dev.to allows creators to easily repost via RSS, maintaining a canonical link to you original post! &lt;strong&gt;They have no desire to own the intellectual properly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In substance&lt;/strong&gt; , it’s much like stackoverflow, crossed with r/programming or hacker news. Somewhat like stackoverflow, developers post questions relevant to every aspect of development (programming, work, metal health, whatever). But also, developers post tutorials, idea, projects, etc like a reddit or hacker news.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Unlike&lt;/em&gt;&lt;/strong&gt; other developer communities, the entire site is &lt;a href="https://github.com/thepracticaldev/dev.to"&gt;an open source project&lt;/a&gt; that anybody can contribute to!.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In form&lt;/strong&gt; , it’s much like Twitter. The homepage is a reverse-chronological-algorithm-sorted feed (based on your interests) of posts, with headlines, hash tags, hearts and cute little avatars of everybody’s faces.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Unlike&lt;/em&gt;&lt;/strong&gt; Twitter, you’re not limited to hearting a post, you can also unicorn it (I don’t know why).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;As a whole&lt;/strong&gt; , DEV manages to be the most diverse and positive communities I’ve been a part member of in a long long time. By diverse, I mean in every way! By positive, I just mean, people are generally nice and pleasant. You can ask a question and not be told “you asked it wrong” (like they would be on stackoverflow), receive 100 snarky sarcastic replies (like Twitter), or “your dum” (like reddit).&lt;/p&gt;

&lt;p&gt;Frankly, I’m not sure how they’re pulling it off. Perhaps it’s because the site is so niche. Or maybe it’s because it’s so small (&amp;lt; 200,000 members at the moment, which is tiny), maybe they haven’t reached the tipping point where toxic individuals are able to dominate the conversation. The fact that the founder &lt;a href="https://dev.to/ben"&gt;Ben Halpern&lt;/a&gt; seems to be one of the nicest people on The Internet can’t hurt either.&lt;/p&gt;




&lt;p&gt;With all the negative press surrounding the big social networks, I’ve been expecting a some venture capital funded behemoth to replace them any day now. In the same way that Facebook killed MySpace or Reddit killed Digg, I assumed there would be a bigger player that destroys Facebook or Twitter.&lt;/p&gt;

&lt;p&gt;But now I’m wondering if niche networks like DEV are the way of the future and it will be more of a death by a thousand cuts for the likes of Facebook.&lt;/p&gt;

&lt;p&gt;Whatever might be the case, DEV is a welcome return to a kinder, simpler internet and I love it.&lt;/p&gt;

&lt;p&gt;I wonder if there are other niche social networks like that I’m missing out on?&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://ohryan.ca/2019/07/28/dev-to-the-most-pleasant-online-community/"&gt;Dev.to: The most Pleasant Online Community.&lt;/a&gt; appeared first on &lt;a href="https://ohryan.ca"&gt;ohryan.ca&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>meta</category>
    </item>
    <item>
      <title>Teaching Kids to Code</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Wed, 24 Jul 2019 17:28:07 +0000</pubDate>
      <link>https://dev.to/ohryan/teaching-kids-to-code-23fl</link>
      <guid>https://dev.to/ohryan/teaching-kids-to-code-23fl</guid>
      <description>&lt;p&gt;My oldest kid (currently age 11) has expressed an interest in learning to code for a while. I've tried working through HTML basics and simple "hello world" type stuff in PHP and Javascript, but it's not really hooking him. &lt;/p&gt;

&lt;p&gt;The most fun code-adjecent thing we've done together was modify Donald Trump's tweets with Inspector and send around the manipulated screenshots 🤣🤣🤣&lt;/p&gt;

&lt;p&gt;In any case, I've had a lot of trouble finding resources for kids in his age group. &lt;/p&gt;

&lt;p&gt;Does anybody have any suggestions?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Do performance reviews have to suck?</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Wed, 17 Jul 2019 14:02:27 +0000</pubDate>
      <link>https://dev.to/ohryan/do-performance-reviews-have-to-suck-2o1p</link>
      <guid>https://dev.to/ohryan/do-performance-reviews-have-to-suck-2o1p</guid>
      <description>&lt;p&gt;Most developers universally agree that performance reviews (and the related salary negotiations) suck!&lt;/p&gt;

&lt;p&gt;Do you have an example of a performance review process that does not suck? Personal anecdote? Links to blog posts/articles?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
