<?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: syntaxrob</title>
    <description>The latest articles on DEV Community by syntaxrob (@syntaxrob).</description>
    <link>https://dev.to/syntaxrob</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%2F495656%2F1f8aafbd-e5e6-4e23-9c85-7cfba90e7c83.jpeg</url>
      <title>DEV Community: syntaxrob</title>
      <link>https://dev.to/syntaxrob</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syntaxrob"/>
    <language>en</language>
    <item>
      <title>F**k Facebook</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Tue, 12 Jan 2021 10:12:31 +0000</pubDate>
      <link>https://dev.to/syntaxrob/f-k-facebook-49c3</link>
      <guid>https://dev.to/syntaxrob/f-k-facebook-49c3</guid>
      <description>&lt;p&gt;As I'm sure most of you reading this will have seen that Whatsapp recently forced all its users to agree to new terms and if you aren't happy with them - tough. You have to stop using Whatsapp.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xD6sUySJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sui0t97msam5hgctr7jp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xD6sUySJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sui0t97msam5hgctr7jp.jpg" alt="New Whatsapp Terms"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 8000 word document, roughly comes down to the fact that Whatsapp will now share your data with its parent company, Facebook, including (but not limited to) your location data, battery level, IMEI number and mobile network provider. On top of this, the app will send data about the groups you are part of, any real-time status you set and your profile photo. There is also a separate section in the new policy called 'Transactions and Payments data.' which in a nutshell lets Facebook store and analyse any payments you make through Whatsapp 😲&lt;/p&gt;

&lt;p&gt;I should point out that for now, at least, Facebook won't be reading your actual messages though, they are remaining encrypted. But honestly, who trusts Facebook enough to believe this won't change in the not too distant future...&lt;/p&gt;

&lt;p&gt;As a result of these changes and not surprisingly, a lot of people are now looking to alternatives and I have picked out the 2 most popular to compare against Whatsapp: &lt;a href="https://signal.org/en/"&gt;Signal&lt;/a&gt; and &lt;a href="https://telegram.org/"&gt;Telegram&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To start off with Telegram is clearly the winner when it comes to features. Being able to hide your contact number from message contacts and creating a username to display instead, or pinning messages to the top of groups chats or editing messages after they've been sent - these are just a few of the great reasons to use to Telegram. But if you want a privacy and security based reason use switch then their Ts and Cs clearly state that &lt;em&gt;We don't use your data to show you ads&lt;/em&gt;, which is exactly what Facebook promised would always be the case when they aquired Whatsapp back in 2014. Telegram doesn't offer end to end encryption for standard messages (&lt;em&gt;secret messages&lt;/em&gt; do however) but are user-to-server encrypted, meaning that the chats can't be intercepted and will be stored on the server in an encrypted manner, but obviously this isn't as good as user to user or &lt;em&gt;end to end encryption&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;While Telegram is the front runner in features, for the more security and privacy aware of you then Signal is the clear winner here. When Whatsapp was built, it used &lt;strong&gt;Open Whisper Systems&lt;/strong&gt;  to integrate the Signal encrypted messaging protocol to achieve end to end encryption, (OWS is also used by Google and Microsoft as it's considered the gold standard in encrypted communications). &lt;/p&gt;

&lt;p&gt;Open Whisper Systems is now called Signal and is part of the Signal Foundation, who have poured a lot of effort into building their own communications app. The app uses end to end encryption which can't be intercepted and read, as Signal uses &lt;strong&gt;on device encryption&lt;/strong&gt; meaning the decryption keys are only stored on the local device and not in a database somewhere. My one warning about using Signal would be that switching to it after years of using Whatsapp, might be frustrating as some basic features we've come to reply on are missing, like the &lt;em&gt;online status&lt;/em&gt; or &lt;em&gt;last seen time&lt;/em&gt;. Not serious, but worth mentioning.&lt;/p&gt;

&lt;p&gt;So, in summary, first of all &lt;strong&gt;stop&lt;/strong&gt; using Whatsapp unless your happy with Facebook having access to more and more of your data. If you want a solid alternative to Whatsapp, which won't use your data to sell you ads and your not too worried about the slim possibility that your messages might one day get compromised then Telegram is the way to go. &lt;/p&gt;

&lt;p&gt;However, if you're Kim Jong Un and need to slide into Donald Trumps inbox, then Signal is the way to go. Its less feature rich than Telegram, but has security dialled to 11 and is an excellent "basic" messenger service.&lt;/p&gt;

&lt;p&gt;Image credits:&lt;br&gt;
Cover Photo background by &lt;a href="https://www.pexels.com/@anton-8100?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels"&gt;Anton&lt;/a&gt; from &lt;a href="https://www.pexels.com/photo/apple-iphone-app-iphone-6-46924/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels"&gt;Pexels&lt;/a&gt;&lt;br&gt;
Toilet Door by &lt;a href="https://www.instagram.com/p/CJ74WiVA_0A/?utm_source=ig_web_copy_link"&gt;ProgrammersCity&lt;/a&gt;&lt;/p&gt;

</description>
      <category>facebook</category>
      <category>whatsapp</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Retrofitting .gitignore</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Tue, 17 Nov 2020 10:19:12 +0000</pubDate>
      <link>https://dev.to/syntaxrob/retrofitting-gitignore-1o7p</link>
      <guid>https://dev.to/syntaxrob/retrofitting-gitignore-1o7p</guid>
      <description>&lt;p&gt;I recently embarked on a green field application and in my haste to get things up and running I forgot to add a .gitignore to my solution. Not a big issue, until you factor in that I only realised this about a dozen commits in!&lt;/p&gt;

&lt;p&gt;Thankfully, this was a fairly simple thing to fix and for those in the same boat; here's how I went about it...&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1
&lt;/h2&gt;

&lt;p&gt;First of all, add your .gitignore to your solution and commit it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2
&lt;/h2&gt;

&lt;p&gt;Next, remove everything from the repo (don't panic, your files won't be deleted!) by using the bash command &lt;code&gt;git rm -r --cached .&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rm&lt;/code&gt; is the remove command&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-r&lt;/code&gt; will allow recursive removal&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--cached&lt;/code&gt; will only remove files from the index and &lt;strong&gt;won't&lt;/strong&gt; delete your files.&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;.&lt;/code&gt; at the end means that all files will be untracked. If you want to untrack a specific file, use the command &lt;code&gt;git rm --cached filename.txt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3
&lt;/h2&gt;

&lt;p&gt;Once you've removed and untracked your files, you can now add your files with &lt;code&gt;git add .&lt;/code&gt; then re-commit everything with your .gitignore &lt;code&gt;git commit -m "added .gitignore"&lt;/code&gt; and push.&lt;/p&gt;

&lt;p&gt;And thats it, you will now have a clean repo 👍&lt;/p&gt;

&lt;p&gt;Cover image from &lt;a href="https://unsplash.com/@yancymin?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Yancy Min&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/git?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>gitignore</category>
    </item>
    <item>
      <title>Know when to walk away...</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Fri, 13 Nov 2020 17:59:59 +0000</pubDate>
      <link>https://dev.to/syntaxrob/know-when-to-walk-away-6h9</link>
      <guid>https://dev.to/syntaxrob/know-when-to-walk-away-6h9</guid>
      <description>&lt;p&gt;How many times have you sat staring at a screen with your head in your hands, trying to figure out how to best get around that thing you've been staring at for the last 2 hours?&lt;/p&gt;

&lt;p&gt;I'll answer it for you - lots. &lt;/p&gt;

&lt;p&gt;How do I know this? Because we have all been there and we've all seen countless others with that look of despair plastered over their faces. &lt;/p&gt;

&lt;p&gt;So, whats the best way around this? Simple; do nothing!&lt;/p&gt;

&lt;p&gt;Go for a walk, make some food, watch an episode of something on Netflix or if you have some &lt;em&gt;totally&lt;/em&gt; unrelated work to do then do that. Taking your mind off a problem has been proven to help solve said problem, the University of British Columbia found that our brains are much more active when we daydream than previously thought (read the full article &lt;a href="https://www.sciencedaily.com/releases/2009/05/090511180702.htm"&gt;here&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Next time you are staring out of the window or thinking about what to do at the weekend, don't feel guilty! But don't use it as an excuse... &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Just so much... stuff</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Thu, 22 Oct 2020 14:10:50 +0000</pubDate>
      <link>https://dev.to/syntaxrob/just-so-much-stuff-1595</link>
      <guid>https://dev.to/syntaxrob/just-so-much-stuff-1595</guid>
      <description>&lt;h2&gt;
  
  
  How many apps do you have on your phone right now?
&lt;/h2&gt;

&lt;p&gt;On average, most people have between 60 and 90 apps installed on their phone at any one time. Me? I have 206...&lt;/p&gt;

&lt;p&gt;Two hundred. And six. 😲&lt;/p&gt;

&lt;p&gt;The next question would be, do I use all of them? I checked my &lt;strong&gt;App Usage Stats&lt;/strong&gt; app and it turns out, that over a 7 day period, I used the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Whatsapp 48%&lt;/li&gt;
&lt;li&gt;Instagram 9%&lt;/li&gt;
&lt;li&gt;Rightmove 8% (I am currently trying to buy a house)&lt;/li&gt;
&lt;li&gt;Chrome browser 7%&lt;/li&gt;
&lt;li&gt;Prime video 5%&lt;/li&gt;
&lt;li&gt;YouTube 4%&lt;/li&gt;
&lt;li&gt;Podcasts app 4%&lt;/li&gt;
&lt;li&gt;Strava 3%&lt;/li&gt;
&lt;li&gt;The phone 3%&lt;/li&gt;
&lt;li&gt;Ebay 3%&lt;/li&gt;
&lt;li&gt;Monzo 3%&lt;/li&gt;
&lt;li&gt;Twitter 3%&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which lead to some interesting insights. First of all, I'm apparently a lot chattier with people than I thought, secondly I watch a lot less online video than I would have predicted but most importantly, there are 175 apps (206 minus the listed 12, minus 10% for apps which cant be removed) not on the above list and therefore not being used. They are just sat there potentially taking up precious battery bars and nibbling away at my data plan in the background. Not to mention taking valuable space I could be using for pictures of my cat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---6fEJPjv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qgaigcklrtqes1akp0d9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---6fEJPjv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qgaigcklrtqes1akp0d9.jpg" alt="Marti cat"&gt;&lt;/a&gt;&lt;br&gt;
Now, please excuse me while I go away and uninstall 175 apps.&lt;/p&gt;

</description>
      <category>apps</category>
      <category>bloat</category>
    </item>
    <item>
      <title>Top 5 things to get started</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Wed, 21 Oct 2020 15:27:43 +0000</pubDate>
      <link>https://dev.to/syntaxrob/top-5-things-to-get-started-77j</link>
      <guid>https://dev.to/syntaxrob/top-5-things-to-get-started-77j</guid>
      <description>&lt;p&gt;New to development, or are you just thinking about starting out but worried about the costs? This blog outlines what you can get for &lt;em&gt;free&lt;/em&gt; to get you started.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. A text editor
&lt;/h2&gt;

&lt;p&gt;There are dozens of these littered throughout the internet, all with slightly different feature sets, strengths and weaknesses depending on what it is you want to do. I've found that the best all-rounder is &lt;a href="https://code.visualstudio.com/"&gt;VS Code&lt;/a&gt;, which covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a plethora of different languages&lt;/li&gt;
&lt;li&gt;intelliSense&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;extensions&lt;/li&gt;
&lt;li&gt;built in git source control
Some others worth checking out are &lt;strong&gt;&lt;a href="https://www.sublimetext.com/"&gt;Sublime&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href="https://atom.io/"&gt;Atom&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://notepad-plus-plus.org/downloads/"&gt;NotePad++&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. An IDE
&lt;/h2&gt;

&lt;p&gt;An IDE, or &lt;strong&gt;Integrated Development Environment&lt;/strong&gt; is the next step on from a text editor and has many more features to aid your development work. Microsoft also offer an excellent IDE in the shape of &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio&lt;/a&gt;, which is available for free on a community license for students, open-source contributors, and individuals (The gripping Ts and Cs can be read &lt;a href="https://visualstudio.microsoft.com/license-terms/mlt031819/"&gt;here&lt;/a&gt;). Other mentions are &lt;strong&gt;&lt;a href="https://www.jetbrains.com/rider/"&gt;Rider&lt;/a&gt;&lt;/strong&gt; from JetBrains, &lt;strong&gt;&lt;a href="https://netbeans.org/"&gt;NetBeans&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://www.eclipse.org/ide/"&gt;Eclipse&lt;/a&gt;&lt;/strong&gt;, as well as many others depending on which language you are using.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://www.youtube.com/"&gt;YouTube&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;As long as your happy with Google pouring more and more ads into youtube creators videos, then this is a place with a &lt;em&gt;wealth&lt;/em&gt; of knowledge and information. So far, there hasn't really been much I haven't been able to find out from YouTube. There are plenty of other platforms out there such as &lt;strong&gt;&lt;a href="https://www.udemy.com/"&gt;Udemy&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a href="https://www.pluralsight.com/"&gt;Pluralsight&lt;/a&gt;&lt;/strong&gt;, but most of their content is paid for.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt; and &lt;a href="https://github.com/"&gt;Github&lt;/a&gt; (source control)
&lt;/h2&gt;

&lt;p&gt;I promise you, at some point, using Git will save your bacon and once you start using it, you'll wonder how you ever managed without it. So what is it? &lt;strong&gt;&lt;em&gt;Git is a distributed version-control system for tracking changes in source code during software development.&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Ok, so what does that mean? It means, in short, that if you break your own code you can roll it back to a point when it did work! More on that and how it can help with collaboration another day though, but &lt;a href="https://www.youtube.com/watch?v=8JJ101D3knE"&gt;here's a video&lt;/a&gt; by &lt;strong&gt;Programming with Mosh&lt;/strong&gt; on how to get started with Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;a href="https://www.postman.com/"&gt;Postman&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Postman is a great tool for testing out what data you get back from open APIs online or for testing an API you have built yourself. &lt;/p&gt;

&lt;p&gt;This might sound daunting to start with, but there are plenty of easy to use &lt;em&gt;free&lt;/em&gt; APIs out there you can play with (&lt;a href="https://any-api.com/"&gt;here are some examples&lt;/a&gt;) and learn from. You could make a web app to get the local weather, or the air quality at any given time for a London Tube station.&lt;/p&gt;

&lt;p&gt;If there's something missing from this list you think would be useful to you, Google it, it will probably exist! (And if it doesn't, build it)&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Side Projects</title>
      <dc:creator>syntaxrob</dc:creator>
      <pubDate>Wed, 21 Oct 2020 11:28:13 +0000</pubDate>
      <link>https://dev.to/syntaxrob/side-projects-7b5</link>
      <guid>https://dev.to/syntaxrob/side-projects-7b5</guid>
      <description>&lt;p&gt;We are all learning, all the time and this is especially true in development as the landscape constantly shifts and changes, reacting to newly released libraries and languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping up
&lt;/h2&gt;

&lt;p&gt;I find that this is the hardest part. I needed a way to get the knowledge into my head (and stay there) as fast as possible, so I can build on that when the next new thing came along.&lt;/p&gt;

&lt;p&gt;In my case, I needed to move on from .net framework and onto .net core, knowing that Blazor was on the horizon and fast approaching. The cliche "Practice, practice, practice" is a cliche for good reason - it is overused, but not without solid reasoning.&lt;/p&gt;

&lt;p&gt;If you can learn one thing, no matter how big or small and practice using it until it becomes part of your development repertoire, without you even having to think (too much) about it, you will start to build on that small thing until it becomes a big thing. The best way to practice? Doing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ideas
&lt;/h2&gt;

&lt;p&gt;Side projects son't have to be giant, multi multifaceted applications with perfect UI's or with a well thought out UX - unless of course a well thought out UX is what you're trying to achieve - they can be tiny modular things which are designed to solve an imaginary problem using the solution your currently learning. And yes, more than likely you will end up with a commit history running into pages and pages as you experiment and try different things and that's ok! Learning new things isn't just about finding out what does work but what doesn't as well, and in the safety of a side project you can do whatever you like!&lt;/p&gt;

&lt;p&gt;Go on... practice.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
