<?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: Alan Solitar</title>
    <description>The latest articles on DEV Community by Alan Solitar (@alansolitar).</description>
    <link>https://dev.to/alansolitar</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%2F219012%2F6d981c66-d38d-4ec6-9970-cdd83fef153b.jpeg</url>
      <title>DEV Community: Alan Solitar</title>
      <link>https://dev.to/alansolitar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alansolitar"/>
    <language>en</language>
    <item>
      <title>Webpack Aliases in Vue JS</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Tue, 05 May 2020 13:47:21 +0000</pubDate>
      <link>https://dev.to/alansolitar/webpack-aliases-in-vue-js-41hp</link>
      <guid>https://dev.to/alansolitar/webpack-aliases-in-vue-js-41hp</guid>
      <description>&lt;p&gt;This article is going to be a quick tutorial on how to set webpack aliases in a Vue JS project. This article is going to assume that your project has been created using &lt;a href="https://cli.vuejs.org/"&gt;Vue Cli&lt;/a&gt;. If it makes sense for your project, I highly recommend using it.&lt;/p&gt;

&lt;p&gt;Webpack aliases are a great way to simplify imports in your Vue JS projects. Instead of specifying long paths, we can instead use a short alias and webpack will generate the full path when we build/run our project.&lt;/p&gt;

&lt;h3&gt;
  
  
  How To Set Up Webpack Aliases in Vue
&lt;/h3&gt;

&lt;p&gt;To start, open up the &lt;strong&gt;vue.config.js&lt;/strong&gt; file in the root directory of your project. If this file does not exist, create it.&lt;/p&gt;

&lt;p&gt;Then, post in the following snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const path = require('path');  
 module.exports = {  
 configureWebpack: {  
     resolve: {  

       alias: {  
           //aliases go here  
       },  
     },  
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Take a look at the &lt;strong&gt;alias&lt;/strong&gt; property of the &lt;strong&gt;configureWebpack&lt;/strong&gt; object. This is where we are going to put all of our aliases.&lt;/p&gt;

&lt;p&gt;A webpack alias looks something like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'@c': path.resolve(\_\_dirname, 'src/components')
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;What we can do now is fill out this alias object with a few paths that we want to alias. To create an alias, simply create a property which will be the name of your alias. In this example, all of the aliases will be prefixed with the &lt;strong&gt;@&lt;/strong&gt; symbol, but you could pretty much do whatever you want. The value must be set to the path for the directory you want to alias.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const path = require('path');  
 module.exports = {  
 configureWebpack: {  
     resolve: {  
       alias: {  
         '@c': path.resolve(\_\_dirname, 'src/components'),  
         '@m': path.resolve(\_\_dirname, 'src/mixins'),  
       },  
     },  
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Awesome, we have aliases. How can we use them in our Vue components?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import MyComponent from '@c/MyComponent.vue'  
 import MyMixin from '@m/MyMixin'  
 export default {  
   name: 'Home',  
   components: {  
     MyComponent,  
   },  
   mixins: [MyMixin],  

 };
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Wow, isn’t that awesome. Look at how short those import statements are. No we don’t have to worry about typing out a bunch of long, unmaintainable paths.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this content. If you liked this, considering checking out my article about &lt;a href="https://remotedevdaily.com/how-to-more-efficiently-pass-down-props-in-vuejs/"&gt;How To More Efficiently Pass Down Props in Vue JS&lt;/a&gt; or this other article about &lt;a href="https://remotedevdaily.com/vuex-productivity-hack-how-to-import-all-vuex-modules-automatically/"&gt;How To Import All Vuex Modules Automatically&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/webpack-aliases-in-vue/"&gt;Webpack Aliases in Vue JS&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>vue</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Search Git Commit History</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Tue, 28 Apr 2020 02:45:06 +0000</pubDate>
      <link>https://dev.to/alansolitar/search-git-commit-history-37j8</link>
      <guid>https://dev.to/alansolitar/search-git-commit-history-37j8</guid>
      <description>&lt;p&gt;Here’s a quick guide on how to search for commits in a repository’s git commit history.&lt;/p&gt;

&lt;p&gt;Git logs, particularly for large teams of developers, can get get massive. In such situations, scrolling through logs looking for a specific commit doesn’t really work. Here are a few ways to easily search through a repository’s git history.&lt;/p&gt;

&lt;h3&gt;
  
  
  Search By User
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log -i --author="&amp;lt;user&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This command will get all the commits for users that match a specific pattern. &lt;strong&gt;-i&lt;/strong&gt; will do a case insensitive search, which usually is the behavior that I want. If you are doing a search where case is important, then simply omit &lt;strong&gt;-i&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --author="Alan"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit z14tz0ez2324251gsff5769gg67a42d543255333 (HEAD -&amp;gt; master, origin/master)  
 Author: Alan-S &amp;lt;myemail@something.com&amp;gt;  
 Date:   Tue Mar 31 00:44:29 2020 -0400  

     Update README  

 commit 44ea613zzdde8b132423cczzz76abcaz9aa444gg  
 Author: Alan-S &amp;lt;myemail@something.com&amp;gt;  
 Date:   Tue Mar 31 00:43:59 2020 -0400  

     Fix issue that prevents data from loading on first page load.  

 :
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Search By String
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --grep="&amp;lt;string&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This command will search the commit logs for this a specific pattern and return all of the matching commits. For example, this could be useful if you want to search for a commit messages that mention a specific term or phrase.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --grep="fetch" -i
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit z32a231zef218R5af46ffadf253c11f40zpl7383 (HEAD -&amp;gt; master)  
 Author: Alan-Solitar &amp;lt;myemail@something.com&amp;gt;  
 Date:   Mon Apr 27 22:34:53 2020 -0400  

     Fetch data on page load
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This will grab all the logs that include the word &lt;strong&gt;fetch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that’s all. Now you should be able to more easily search through your git history. If you are interested in reading more about Git, consider checking out my article about &lt;a href="https://remotedevdaily.com/delete-all-local-git-branches-quickly/"&gt;quickly deleting all local git branches&lt;/a&gt; that I wrote.&lt;/p&gt;

&lt;p&gt;Have a great day.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/search-git-commit-history/"&gt;Search Git Commit History&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Python: Handling Exceptions in List Comprehensions</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Tue, 11 Feb 2020 05:16:42 +0000</pubDate>
      <link>https://dev.to/alansolitar/python-handling-exceptions-in-list-comprehensions-48ce</link>
      <guid>https://dev.to/alansolitar/python-handling-exceptions-in-list-comprehensions-48ce</guid>
      <description>&lt;p&gt;This article will cover how to handle exceptions in python list comprehensions.&lt;/p&gt;

&lt;p&gt;I really enjoy using list comprehensions. It feels amazing to construct a nice list comprehension to make my code more readable and concise.&lt;/p&gt;

&lt;p&gt;However, one thing that’s always annoyed be about list comprehensions is error handling.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem With List Comprehensions and Exceptions
&lt;/h3&gt;

&lt;p&gt;In particular, error handling can be a real pain when using functions inside list comprehensions.&lt;/p&gt;

&lt;p&gt;Consider the following example:&lt;/p&gt;

&lt;p&gt;You have a list of strings that each represent a percentage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;values = ['1.1%','2.0%','NA%','3.1%','5%','7.45%',]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Your task is to extract only the number from each string. We can do this with the following piece of code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rates = [float(rate[:-1]) for value in values if rate]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;But wait! As you can probably tell, &lt;strong&gt;NA&lt;/strong&gt; is not a number, and because the float function has no way to handle this, it’s going to throw an exception.&lt;/p&gt;

&lt;p&gt;Bummer.&lt;/p&gt;

&lt;p&gt;So what are the options?&lt;/p&gt;

&lt;p&gt;We could use a normal for loop with a &lt;strong&gt;try except&lt;/strong&gt; block. And a lot of time time that can be a good choice. But for the purposes of this example, we want to see how we can handle errors using a list comprehension rather than a more traditional for loop.&lt;/p&gt;

&lt;p&gt;OK, instead, we can filter out the unwanted values. And in this case, because we know that the list can contain a value of &lt;strong&gt;“NA%”&lt;/strong&gt; , that will work. However, even though it works in this case, you won’t always know your values beforehand.&lt;/p&gt;

&lt;p&gt;So, how can we tackle the case where you don’t know what values your input list will contain?&lt;/p&gt;

&lt;p&gt;Fear not, there is a way to get both clean, concise looking code and robust error handling.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Catch&lt;/strong&gt; function to the rescue!
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def catch(func, *args, handle=lambda e : None, **kwargs):  
     try:  
         return func(*args, **kwargs)  
     except Exception as e:  
         return handle(e)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The credit for this nifty little code snippet goes to the user &lt;strong&gt;Bryan Head&lt;/strong&gt; who shared this snippet in an answer to a &lt;a href="https://stackoverflow.com/questions/1528237/how-to-handle-exceptions-in-a-list-comprehensions"&gt;question on stackoverflow&lt;/a&gt;. Thank’s Bryan.&lt;/p&gt;

&lt;p&gt;This snippet is pretty sweet. This &lt;strong&gt;catch&lt;/strong&gt; function accepts a function, args, kwargs, and optionally a custom exception handler.&lt;/p&gt;

&lt;p&gt;You can now use this &lt;strong&gt;catch&lt;/strong&gt; function as a wrapper to call whatever function you want.&lt;/p&gt;

&lt;p&gt;You can also specify a custom handle function that will deal with any exception. By default, this handle function will just return None. In this case, that’s really useful since &lt;strong&gt;None&lt;/strong&gt; can easily be filtered out in your list comprehension.&lt;/p&gt;

&lt;p&gt;Here’s how we can apply the &lt;strong&gt;catch&lt;/strong&gt; function to the previous example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rates = [catch(float,rate[:-1]) for rate in rates if rate]  
 # [1.1,2.0,3.1,5.0,7.45]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And that’s all there is to it. Now you can handle exceptions in list comprehensions.&lt;/p&gt;

&lt;p&gt;I hope that was helpful.&lt;/p&gt;

&lt;p&gt;If you like python and want to check check out more awesome python content, consider checking out some other &lt;a href="https://remotedevdaily.com/category/python/"&gt;interesting python articles&lt;/a&gt;. For example, I have articles about common topics like &lt;a href="https://remotedevdaily.com/convert-string-to-datetime-object-in-python/"&gt;How To Convert a string to A Datetime Object&lt;/a&gt; to more involved articles like how &lt;a href="https://remotedevdaily.com/python-django-2-upgrade-tutorial-common-problems/"&gt;How to Upgrade from Django 1 to Django 2&lt;/a&gt;.&lt;br&gt;
Enjoy!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/python-handling-exceptions-in-list-comprehensions/"&gt;Python: Handling Exceptions in List Comprehensions&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Python Django 2 Upgrade Tutorial: Common Problems</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Sat, 24 Aug 2019 19:27:43 +0000</pubDate>
      <link>https://dev.to/alansolitar/python-django-2-upgrade-tutorial-common-problems-1ni2</link>
      <guid>https://dev.to/alansolitar/python-django-2-upgrade-tutorial-common-problems-1ni2</guid>
      <description>&lt;p&gt;This tutorial will cover some of the common errors that you encounter when upgrading your Python Django application to Django 2.&lt;/p&gt;

&lt;p&gt;I recently upgraded a project from Django 1.11 to Django 2, and after upgrading I was bombarded with a number of different errors. I thought I’d provide a record of the errors I encountered and how I fixed them.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. No module named ‘django.core.urlresolvers’
&lt;/h3&gt;

&lt;p&gt;In Django, it’s pretty common to use the reverse function to get the path of a url from it’s name.&lt;/p&gt;

&lt;p&gt;The problematic line was the following:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.core.urlresolvers import reverse
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The &lt;strong&gt;urlresolver&lt;/strong&gt; module was removed in Django 2 and can no longer be used. Instead, you can use the &lt;strong&gt;resolve&lt;/strong&gt; function from the &lt;strong&gt;urls&lt;/strong&gt; module as such:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.urls import reverse
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Awesome! One down. Let’s continue.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. missing 1 required positional argument: ‘on_delete’
&lt;/h3&gt;

&lt;p&gt;Django 2 now requires the on_delete keyword to be specified for foreign key fields that are used in your models.&lt;br&gt;&lt;br&gt;
 Previously, it would default to models.CASCADE.&lt;/p&gt;

&lt;p&gt;In order to resolve this problem, you’re going to need to add the on_delete keyword arguement to every foreign key field. You also need to specify on_delete for the &lt;strong&gt;OneToOneField&lt;/strong&gt; as well.&lt;/p&gt;

&lt;p&gt;Your options for the on_delete keyword argument include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;models.CASCADE&lt;/li&gt;
&lt;li&gt;models.PROTECT&lt;/li&gt;
&lt;li&gt;models.SET_NULL&lt;/li&gt;
&lt;li&gt;models.SET_DEFAULT&lt;/li&gt;
&lt;li&gt;models.SET()&lt;/li&gt;
&lt;li&gt;models.DO_NOTHING&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can read about the values you can pass to on_delete in the &lt;a href="https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.ForeignKey.on_delete"&gt;Django documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here’s an example of what specifying the on_delete keyword looks like:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my_field = models.ForeignKey(MyModel, on_delete=models.CASCADE)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;OK, moving on to the next error.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Specifying a namespace in include() without providing an app_name
&lt;/h3&gt;

&lt;p&gt;This error is caused by a change in the api for Django’s &lt;strong&gt;include&lt;/strong&gt; function. We need to make sure the &lt;strong&gt;include&lt;/strong&gt; function is being passed the correct arguments.&lt;/p&gt;

&lt;p&gt;First, you need to go to the urls.py file you are trying to include and add a variable called &lt;strong&gt;app_name&lt;/strong&gt;. You can add it anywhere in the file, but I’d recommend putting it at the top after your imports.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# my_app/urls.py  
#... your imports  

app_name="my_app"  

# ... rest of your code
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now, go to the urls.py file that includes the other file. You can now add the &lt;strong&gt;app_name&lt;/strong&gt; you specified as the second parameter to the include function.&lt;/p&gt;

&lt;p&gt;Here’s an example:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# urls.py  
re_path(r'^api/my_path', include('my_app.urls','my_app' )),
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  4. There are duplicate field(s) in ‘fieldsets[][]&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;In my case, there was an issue with my custom &lt;strong&gt;ModelAdmin&lt;/strong&gt; class. It seems Django used to allow duplicate fields before, but now it does not.&lt;/p&gt;

&lt;p&gt;Simply remove the duplicate fields from your custom admin class and you shouldn’t have any issues.&lt;/p&gt;
&lt;h3&gt;
  
  
  5. JSONField default should be a callable instead of an instance so that it’s not shared between all field instances.
&lt;/h3&gt;

&lt;p&gt;This is an issue you will only encounter if you are using PostgreSQL along with the PostgreSQL JSONField.&lt;/p&gt;

&lt;p&gt;Basically, Django only wants you to pass a callable as the default value for this field. This is to avoid the default being shared among all objects which could lead to problems in the case of modification.&lt;/p&gt;

&lt;p&gt;If your default is &lt;strong&gt;{}&lt;/strong&gt; , replace that with &lt;strong&gt;dict&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your default is &lt;strong&gt;[]&lt;/strong&gt;, replace that with &lt;strong&gt;list&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  6. request.user.is_authenticated() TypeError: ‘bool’ object is not callable
&lt;/h3&gt;

&lt;p&gt;In Django 2, &lt;strong&gt;is_authenticated&lt;/strong&gt; can no longer be called as a function. It is a boolean property and you need to call it like a property as follows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;request.user.is_authenticated
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  7. Optional Changes
&lt;/h3&gt;

&lt;p&gt;You are probably using the &lt;strong&gt;url&lt;/strong&gt; function from &lt;strong&gt;django.conf.urls&lt;/strong&gt;. Your code probably looks something like the following:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.conf.urls import url  
url(r"^books/$", views.BookList.as_view()),
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The &lt;strong&gt;url&lt;/strong&gt; function is an alias to &lt;strong&gt;django.urls.re_path()&lt;/strong&gt; and it’s likely to be deprecated according to the &lt;a href="https://docs.djangoproject.com/en/2.2/ref/urls/#url"&gt;Django documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I highly recommend changing to &lt;strong&gt;import re_path&lt;/strong&gt; to avoid future issues when the function is in fact deprecated.&lt;/p&gt;

&lt;p&gt;Rewritten with &lt;strong&gt;re_path&lt;/strong&gt; , the example from above would become:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.urls import re_path  
re_path(r"^books/$", views.BookList.as_view()),
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And that about sums it up. Hopefully this helped you upgrade to Django 2.&lt;/p&gt;

&lt;p&gt;If you liked this and want to see similar content, here are some other &lt;a href="https://remotedevdaily.com/category/python/"&gt;python articles&lt;/a&gt; I wrote.&lt;br&gt;&lt;br&gt;
 Perhaps you are using heroku to host your Django project. If so, check out my article on how to &lt;a href="https://remotedevdaily.com/how-to-change-your-python-version-in-heroku/"&gt;change your python version in heroku&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, if you are interested in reading more awesome articles about being a remote software developer, please consider subscribing to my &lt;a href="https://remotedevdaily.com/subscribe/"&gt;mailing list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Keep on coding!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/python-django-2-upgrade-tutorial-common-problems/"&gt;Python Django 2 Upgrade Tutorial: Common Problems&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>django</category>
      <category>webdev</category>
      <category>dev</category>
    </item>
    <item>
      <title>How To Explain A Technical Problem To Non Technical People</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Fri, 29 Mar 2019 15:00:11 +0000</pubDate>
      <link>https://dev.to/alansolitar/explaining-a-technical-problem-to-non-technical-people-maj</link>
      <guid>https://dev.to/alansolitar/explaining-a-technical-problem-to-non-technical-people-maj</guid>
      <description>&lt;p&gt;One thing that I think a lot of developers struggle with is with how to explain a technical problem to a non-technical person. Developers often work all day with other developers where they can bounce around ideas, talk about bugs, and use technical language without fear of confusion or being misunderstood. However, there are times where developers must attend meetings with potential customers, explain a new feature to a non-technical boss/employee, or converse with any other potential number of non-technical individuals.&lt;/p&gt;

&lt;p&gt;This type of communication can often be overlooked by developers, particularly if you are an introverted person, like myself. However, the more you are involved in the software industry, you realize that being able to explain technical issues is extremely important. It doesn’t matter whether someone has technical knowledge or not — no matter who you talk to, you want to treat them with respect and conduct the conversation in a way that is beneficial and easy to understand for both parties.&lt;/p&gt;

&lt;p&gt;For example, put yourself on the other side of the table for a minute. Let’s say you are having a private meeting with your lawyer. You have an issue, and you are looking for clarification, advice, and potential resolution. As such, you wouldn’t want them to start throwing around a bunch of legal jargon or start citing really obscure sections of some complex legal document. You want to know in plain, direct language, what the law says, how it affects your situation, and what the proper course of action is.&lt;/p&gt;

&lt;p&gt;Likewise, as a software engineer, you need to be aware of who your audience is and what the best way to convey the information they are seeking. How can we do this?&lt;/p&gt;

&lt;h3&gt;
  
  
  Solutions
&lt;/h3&gt;

&lt;h5&gt;
  
  
  1. Show The Problem!
&lt;/h5&gt;

&lt;p&gt;As software developers, the products we work on often have visual components. Subsequently, most of the problems that we encounter in development affect user experience in some way. This may be that an end user is seeing incorrect data, certain features are broken, a page hangs, etc… Problems such as this are something that can be seen. As such, we can use tools such as screenshots or screen sharing in order to demonstrate these issues.&lt;/p&gt;

&lt;p&gt;This allows you to show the problem in a more universal way that doesn’t depend on knowing certain technical words or understanding any design/implementation complexities. For example, let’s say you have a bug where a modal doesn’t close. This could be due to a problem with an api route, a bad event handler, or any other number of things. But when you demonstrate the problem by doing a live run through of the feature, no matter what the cause, your audience will generally understand what’s wrong. Somebody may not know the word “modal,” but they will certainly be able to see that the “big floating box with a button in it” doesn’t close properly&lt;/p&gt;

&lt;h5&gt;
  
  
  2. Explain the problem in business terms.
&lt;/h5&gt;

&lt;p&gt;This is really useful if you are talking to an investor or a non-technical boss. A lot of the time, non-technical people don’t necessarily want an in-depth understanding of the problem. What they really want is to understand a few basic things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How does this affect our customers?&lt;/li&gt;
&lt;li&gt;How long is this going to take to fix?&lt;/li&gt;
&lt;li&gt;Are there going to be any costs associated with this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than explain the technical details, you can boil down the issue into these core components.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;“There is a problem with the code and thus the user is not able to perform &lt;strong&gt;Action A&lt;/strong&gt;. I have located the problem, and it will take approximately &lt;strong&gt;X Days&lt;/strong&gt; to fix. We will also need to upgrade to the next tier of aws which will cost &lt;strong&gt;Z Dollars&lt;/strong&gt; more a month.”&lt;/p&gt;

&lt;p&gt;This is great. It cuts through the technical level and gives these people the information they truly want.&lt;/p&gt;

&lt;h5&gt;
  
  
  3. Explain Your Terms
&lt;/h5&gt;

&lt;p&gt;It may be that the above situations do not apply. There may be a situation where a non-technical person really does want a relatively in-depth understanding of the problem at hand. In this situation, what I find is helpful is to take a step back and really think about your words.&lt;/p&gt;

&lt;p&gt;Since you are explaining a technical problem, it’s okay to occasionally throw in a technical word. But when you do, be sure that you explain that word. Don’t be ashamed or feel hesitant to explain terms that might seem a bit basic to you. Either you’re audience will nod in affirmation of something they already know, or they will be happy to receive an explanation of an unfamiliar word. Further, don’t take for granted that your explanation was understood. You should try your best to encourage questions and make sure that you can clarify any potential points of confusion.&lt;/p&gt;

&lt;p&gt;I think that about covers it. Hopefully this information was helpful in understanding how to explain technical problems to non-technical individuals.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/explaining-a-technical-problem-to-non-technical-people/"&gt;Explaining A Technical Problem To Non Technical People&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>communication</category>
      <category>career</category>
      <category>advice</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How To Protect Your Eyes As a Software Developer</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Wed, 12 Dec 2018 21:45:18 +0000</pubDate>
      <link>https://dev.to/alansolitar/how-to-protect-your-eyes-as-a-software-developer-45ki</link>
      <guid>https://dev.to/alansolitar/how-to-protect-your-eyes-as-a-software-developer-45ki</guid>
      <description>&lt;p&gt;As someone who has battled with eye issue in the past, I thought I’d provide the developer community with some tips on how to protect your eyes as a software developer.&lt;/p&gt;

&lt;p&gt;As a software developer, your eyes are extremely important. All of those long debugging sessions scanning for that impossible to find bug, pouring over online documentation to see how to implement a certain feature — all of that intense work requires your eyes to be in good working order. And unfortunately, most people don’t realize the strain that these activities put on the eyes. I know I didn’t.&lt;/p&gt;

&lt;p&gt;A few years ago, due to a combination of poor habits and past decisions, I had some pretty severe issues with my eyes. I’m not going to bore you with the details, but I will just say that at one point, it was so bad, that I could only really look at a computer screen for about 5 to 10 minutes at a time. As a developer, that is simply unacceptable.&lt;/p&gt;

&lt;p&gt;After a few years of trial and error, online research, and behavioral modifications, I have found a number of tools, environmental changes, and behaviors that have allowed me to improve and maintain my eye health. Here’s what I have found:&lt;/p&gt;

&lt;h2&gt;
  
  
  Here’s what I have found:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Use Pen and Paper:
&lt;/h3&gt;

&lt;p&gt;Extended amounts of time at the computer can be extremely tough on the eyes, but since most of our work requires the use of screens, it’s a necessary evil. However, as software developers, not all of our time is spent coding. Much of what we do is architectural — planning and designing the systems/interfaces that we are going to build out. During such stages, I’ve found that I don’t really need to use my computer. Instead, I grab my trusty old pen and do my work on a piece of paper. This allows me to take a break from the computer and my eyes always thank me.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Use f.lux:
&lt;/h3&gt;

&lt;p&gt;f.lux is a program that adjusts the color temperature of your monitor. Blue light can be a large source of eye strain, especially as the day goes on and the sun goes down. Flux helps with this problem by intelligently managing the temperature of your monitor, slowly reducing the amount of emitted blue light as the day goes on. For me, f.lux was a real game changer. The difference in eye comfort was immediately apparent and I was able to slowly increase my amounts of screen time.&lt;/p&gt;

&lt;h5&gt;
  
  
  How f.lux works:
&lt;/h5&gt;

&lt;p&gt;Provide f.lux with your location and what time you wake up in the morning — it will try it’s best to match your circadian rhythm, reducing monitor temperatures slowly as the day progresses and your bed time approaches. You can also manually adjust the colors or choose from presets.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Adjust Your Monitor’s Brightness Level:
&lt;/h3&gt;

&lt;p&gt;Do you find yourself getting fatigued quickly when in front of the computer screen? It’s possible your monitor is too bright. It’s hard to say exactly what level of brightness is appropriate, since brightness of a device(often measured in Nits) will vary depending on the specific product and panel type. A good method I’ve seen used to find an optimal brightness level is to turn it down to the lowest level you can while still being able to read everything on screen. As someone who is very light sensitive, turning down the brightness on all my devices helped increase my comfort level massively.&lt;/p&gt;

&lt;p&gt;Note: If you are doing any color sensitive work, flux and your monitor’s brightness level may distort colors. For f.lux, you can temporarily adjust the color temperatures, or choose a preset like “color fidelity.” For brightness, you can delegate different custom profiles(if your monitor supports them) for different tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Use a dark theme extension:
&lt;/h3&gt;

&lt;p&gt;This one was really important for me. Obviously, most web pages are white. However, this white background, particularly when your eyes are tired or irritated, can become a real bother. At my worst, looking at a site with a blindingly white background was almost impossible. I had always used a dark theme on all of my code editors, so I started to wonder, wouldn’t it be nice if something similar existed for web browsers?&lt;/p&gt;

&lt;p&gt;The solution to this problem is a browser extensions that can alter every site’s css. On Firefox, I use &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/owl/"&gt;Owl&lt;/a&gt;. For chrome, I use &lt;a href="https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh?hl=en-US"&gt;Dark Reader&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Though it can vary depending on the site, with both of these extensions, you will usually get white text on a dark background.&lt;/p&gt;

&lt;p&gt;I can’t say a lot about Dark Reader other than “it works.” Firefox is my daily driver, so I will focus the discussion on Owl.&lt;/p&gt;

&lt;p&gt;Owl was truly life changing for me. All of the above techniques helped a lot, but using a dark theme extension is what really allowed me to start working on a computer again. I went from barely being able to browse the web, to actually being able to look at a screen and do work for a couple hours at a time.&lt;/p&gt;

&lt;p&gt;Owl is a great extension — you can enable/disable it for certain sites and it even works on pdfs.&lt;/p&gt;

&lt;p&gt;In fact, I like Owl so much that I even contributed to the project on github a few months back.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Consider Lighting:
&lt;/h3&gt;

&lt;p&gt;Any direct light is really tough on the eyes. I always make sure that my light source is behind me, illuminating my work space. Another important thing I’ve found is to make sure the light is filtered by either a lamp shade or other object. In my room, I actually use two lamp shades, because one wasn’t enough to properly filter the light.&lt;/p&gt;

&lt;p&gt;Another good option is to have accent lighting. In the past I would sometimes place a light directly behind my monitor, for example.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Use High Contrast Mode(Windows 10)
&lt;/h3&gt;

&lt;p&gt;This one is only really applicable to windows users. One problem I’ve had is that win32 apps, like file explorer, don’t have a dark theme like uwp apps.&lt;/p&gt;

&lt;p&gt;To solve this I have mapped high contrast mode to a programmable key on my keyboard. Whenever I need to use a win32 app, I enter high contrast mode. When I switch to another app, I exit high contrast mode. It’s sometimes annoying, but it works.&lt;/p&gt;

&lt;p&gt;*Update* – Windows actually did just release a dark theme for file explorer in the latest 1809 update. High Contrast Mode is still useful though when dealing with other win32 apps or parts of the os that can’t be skinned dark.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Dark Theme Everything
&lt;/h3&gt;

&lt;p&gt;This may overlap with some of the above techniques, but it’s an important thing to mention. Whenever I consider using a new piece of software, I always look to see if it has a dark theme. This goes for my code editors, my operating system, or any piece of software I use. Even in my own personal projects I always make sure to use a darker color scheme. Sometimes I have to employ some weird hacks to apply dark themes, but in the end I’ve always found it to be worth it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Things I’ve Found Useful:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Be Aware of AC/Heat:
&lt;/h3&gt;

&lt;p&gt;This is something in the past I really overlooked. AC reduces humidity, while heating raises the temperature thus decreasing relative humidity. This dries out your eyes, starving you of much needed moisture. For this reason, I almost never use heat or air conditioning.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Blink:
&lt;/h3&gt;

&lt;p&gt;Making sure to blink was really important for me. A main culprit for eye irritation while on the computer is decreased blink rate. Blinking is how your eyes get that much needed moisture. My blink rate in the past was really terrible — well below the average of 1 blink every 4 seconds. It’s taken a long time and a lot of conscious blinking and behavioral change, but my blink rate seems to have somewhat returned to normal levels.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Take Breaks:
&lt;/h3&gt;

&lt;p&gt;I always making sure to give my eyes a rest when I can. In the past, I was a pretty serious about maintaining the 20-20-20 rule, which state “every 20 minutes, look at something 20 feet away, for 20 seconds.” However, normal breaks and occasionally looking away from my computer screen have become habits, so it’s not completely necessary anymore. Though it was certainly very useful in the past.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Work Remotely:
&lt;/h3&gt;

&lt;p&gt;When you work remotely, you get to have full control of your environment. That makes it easy to control factors like the amount of light in the room, the internal temperate, and what software you install on your computer. If anyone out there is curious about remote work, please check out my article where I talk about &lt;a href="https://remotedevdaily.com/5-reasons-why-i-love-being-a-remote-software-developer/"&gt;The 5 Reasons Why I Love Being a Remote Software Developer&lt;/a&gt;. I love remote work and I would not be able to protect my eyes the way I do without it.&lt;/p&gt;

&lt;p&gt;Well, that covers most of it I think. If I forgot anything or discover anything new, I’ll be sure to update this article. Also, if you are interested in reading more awesome content like this, please consider subscribing to my &lt;a href="https://remotedevdaily.com/subscribe/"&gt;mailing list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Please keep in mind that this is not advice and I am not a doctor. If you have any eye issues, be sure to consult a medical professional.&lt;/p&gt;

&lt;p&gt;Let’s all keep our eyes healthy and keep on coding.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/how-to-protect-your-eyes-as-a-software-developer/"&gt;How To Protect Your Eyes As a Software Developer&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>health</category>
      <category>wellness</category>
      <category>career</category>
      <category>developer</category>
    </item>
    <item>
      <title>Getting Experience Without Attending Hackathons</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Thu, 18 Oct 2018 15:11:53 +0000</pubDate>
      <link>https://dev.to/alansolitar/getting-experience-without-attending-hackathons-1fm</link>
      <guid>https://dev.to/alansolitar/getting-experience-without-attending-hackathons-1fm</guid>
      <description>&lt;p&gt;Hackathons – they’re awesome — or so I hear. I’ve actually never been to one.&lt;/p&gt;

&lt;p&gt;Hackathons and lovers of the &lt;a href="https://remotedevdaily.com/5-reasons-why-i-love-being-a-remote-software-developer/"&gt;remote&lt;/a&gt; lifestyle don’t mix all that well.&lt;/p&gt;

&lt;p&gt;That said, hackathons do have many positive aspects. For example, you can do some networking, build stuff with data/hardware that you don’t have access to/can’t afford, and in some cases companies will even recruit at these events.&lt;/p&gt;

&lt;p&gt;For CS students applying for internships or their first job out of college, hackathons can be very helpful. They give you something to talk about during interviews and if you happened to have placed or outright won at one of these events, companies may even try to recruit you.&lt;/p&gt;

&lt;p&gt;However, there are definitely people, such as myself, whose personalities and mannerisms aren’t a good fit for hackathons. For example, if you can’t sleep in places that aren’t your bed, get uncomfortable in certain social situations, don’t work well with distractions, or just don’t like the idea of having to deal with a stressful all-nighter, hackathons may not be for you.&lt;/p&gt;

&lt;p&gt;And to those like-minded individuals, I would say “Don’t force yourself to attend a hackathon.” I’ve never attended a hackathon and I am very content with that decision.&lt;/p&gt;

&lt;p&gt;However, if you don’t attend hackathons, you could potentially be at a disadvantage when applying for jobs.&lt;/p&gt;

&lt;p&gt;Any potential job seeker needs to think about the following:&lt;br&gt;&lt;br&gt;
 How am I going to appeal to employers?&lt;br&gt;&lt;br&gt;
 What will I put on my resume?&lt;br&gt;&lt;br&gt;
 What am I going to talk about in an interview?&lt;/p&gt;

&lt;p&gt;Hackathons are nice because they require a very low time investment for something that can potentially really pay off.&lt;/p&gt;

&lt;p&gt;However, if you are an anti-hackathoner such as myself, there is no need to fret — you do have options.&lt;/p&gt;

&lt;p&gt;Just know that you’re going to need to be a grinder.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Self Learning
&lt;/h3&gt;

&lt;p&gt;You probably are going to want to spend a good amount of time learning new technologies. Since you are trying to get your foot in the door and get your resume noticed, it’s probably a good idea to perhaps learn a popular frontend or backend framework. Though just learning whatever frameworks/technologies that genuinely interest you is fine as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Personal Projects
&lt;/h3&gt;

&lt;p&gt;Learning in and of itself is fine, but it would look really awesome if you had some projects to put on your your resume and perhaps even demo during an interview. Building something interesting and useful that you care about, rather than just something generic would be great. Still, any projects you have would be better than nothing at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Take Useful Electives
&lt;/h3&gt;

&lt;p&gt;Taking something like graph theory is fine, and if that’s what you’re interested in, that’s great. Just know that it may not get you noticed. If you want to stand out, taking something like machine learning, ai, or computer vision, which are highly desired skillsets in today’s marketplace, are great choices. And of course, if your school offers courses in subjects like web development, database design, app development, or similar practical courses, those are also fantastic.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Contribute to an open source project
&lt;/h3&gt;

&lt;p&gt;Maybe there’s a piece of open source software that you really like and you want to contribute to the project. For someone with little experience it may seem daunting to contribute to a existing piece of software, but just give it a shot. Even if it’s just removing a semi-colon, adding some comments, or making a fix to the documentation, any contributions will look good. Take a look through feature requests and reported issues. If you see anything that catches your eye, give it a shot. Even something as simple as documenting issues is fine. The point is to just start contributing.&lt;/p&gt;

&lt;p&gt;Those are just a few ways that you can get some experience without attending hackathons. So if you aren’t the hackathon type of person, don’t worry. There are plenty of non-hackathon methods for gaining experience and building up your skills to impress future employers.&lt;/p&gt;

&lt;p&gt;If anyone else has any good tips for young devs or has something to say about what I’ve written here, please leave a comment.&lt;/p&gt;

&lt;p&gt;Also, if you are interested in reading more awesome &lt;a href="https://remotedevdaily.com/category/lifestyle/"&gt;software developer content&lt;/a&gt;, please subscribe to my &lt;a href="https://remotedevdaily.com/subscribe/"&gt;mailing list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/getting-experience-without-attending-hackathons/"&gt;Getting Experience Without Attending Hackathons&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>developer</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Use a Standing Desk To Boost Your Health and Productivity</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Tue, 11 Sep 2018 19:13:48 +0000</pubDate>
      <link>https://dev.to/alansolitar/use-a-standing-desk-to-boost-your-health-and-productivity-1md4</link>
      <guid>https://dev.to/alansolitar/use-a-standing-desk-to-boost-your-health-and-productivity-1md4</guid>
      <description>&lt;p&gt;If you sit in a chair all day, as most software developers do, a standing desk might be a good option for you.&lt;/p&gt;

&lt;p&gt;Any software developer should be familiar with what’s like to sit all day. You know the drill.&lt;/p&gt;

&lt;p&gt;After a few hours, or perhaps sooner, your body starts to get stiff. The day continues and you are still in your chair. Your butt starts hurting. You might get some neck and shoulder pain — perhaps even some back pain. Your fidgeting, your body’s uncomfortable, and worst of all, you just can’t focus on work.&lt;/p&gt;

&lt;p&gt;That’s a feeling that I knew all too well. It sucks and it was affecting my ability to perform as a software developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;A big problem is that most chairs lack flexibility — you are essentially locked into one position. What does this mean?&lt;/p&gt;

&lt;p&gt;5 hours in a chair == 5 hours your body isn’t moving. And that’s a problem.&lt;/p&gt;

&lt;p&gt;No movement, no blood flow — it’s no wonder so many software devs get into bad shape.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;I first learned about standing desks a few years ago from a Linus Tech Tips Youtube Video. In that video, Linus and his team talked about their impressions of a certain standing desk.&lt;/p&gt;

&lt;p&gt;“Wow, these things are cool!”, I thought to myself.&lt;/p&gt;

&lt;p&gt;They go up, they go down — that’s awesome!&lt;/p&gt;

&lt;p&gt;I knew that I wasn’t exactly living a “healthy” lifestyle, and I thought this would be a great way to become more active. A standing desk was something I planned to get eventually, but I didn’t prioritize it.&lt;/p&gt;

&lt;p&gt;Well, fast forward a few years:&lt;/p&gt;

&lt;p&gt;I was having a ton of pain all over and sitting in a chair all day just wasn’t helping.&lt;/p&gt;

&lt;p&gt;I figured now was the time to make the switch.&lt;/p&gt;

&lt;p&gt;So, I did some research, found a desk that I liked, and I took the plunge.&lt;/p&gt;

&lt;p&gt;And… I love it.&lt;/p&gt;

&lt;p&gt;Standing desks are great, but you need to know how to use them properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Not To Do
&lt;/h3&gt;

&lt;p&gt;I highly recommend that you do &lt;strong&gt;not&lt;/strong&gt; get one of the non-adjustable standing desks.&lt;/p&gt;

&lt;p&gt;A common trend is to regard sitting as “the new smoking”. Seriously — and if you don’t believe me, here’s the google search results &lt;a href="https://www.google.com/search?q=sitting+is+the+new+smoking"&gt;page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Taking this argument to it’s logical conclusion, a lot of people will tell you to throw out your chair and get a pure standing desk.&lt;/p&gt;

&lt;p&gt;I don’t agree.&lt;/p&gt;

&lt;p&gt;If you’ve ever worked a retail job, standing for 8 or 9 hours a day isn’t exactly kind to your body either.&lt;/p&gt;

&lt;p&gt;The idea is to have a nice balance of standing and sitting. That is why getting a &lt;strong&gt;sit standing&lt;/strong&gt; desk is key.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;Both standing and sitting can be comfortable or uncomfortable depending on the situation.&lt;/p&gt;

&lt;p&gt;Just like programming languages, frameworks, and libraries, sitting and standing are just tools.&lt;/p&gt;

&lt;p&gt;And like tools, you need to know when to use them.&lt;/p&gt;

&lt;p&gt;I start the day by standing. It wakes me up, gets my body moving, and it just feels like a nice, refreshing way to start the day.&lt;/p&gt;

&lt;p&gt;Once my feet or lower back start to get tired, I switch to sitting. Sitting acts as a nice change of pace, and I’m able to be productive once again.&lt;/p&gt;

&lt;p&gt;Once I get tired of sitting or feel like my concentration is waning, I stand back up and stretch a bit as I work.&lt;/p&gt;

&lt;p&gt;Throughout the day I monitor my body and mood, and will sit or stand depending on what I need to keep myself an alert, well-oiled, software developing machine.&lt;/p&gt;

&lt;p&gt;I consider my standing desk to be an indispensable part of my home office set-up and I have no intention of ever going back to a traditional desk.&lt;/p&gt;

&lt;p&gt;I feel so much better every day and my health has definitely improved.&lt;/p&gt;

&lt;p&gt;If you happen to be interested in software developer health, you can also check out my article &lt;a href="https://remotedevdaily.com/how-diet-made-me-a-better-software-developer/"&gt;How Diet Made Me a Better Software Developer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If any of the problems I mentioned in the article resonate with you or you just want to try living a healthier lifestyle, getting a standing desk might be a good option. Of course, I am not a doctor, and if it’s a health issue you are having, don’t forget to consult a physician first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; : standing desks are awesome!&lt;/p&gt;

&lt;p&gt;If you have any questions or thoughts about my sit standing desk experience, please comment below.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/use-a-standing-desk-to-boost-your-health-and-productivity/"&gt;Use a Standing Desk To Boost Your Health and Productivity&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>health</category>
      <category>wellness</category>
      <category>career</category>
      <category>developer</category>
    </item>
    <item>
      <title>5 Reasons Why I Love Being a Remote Software Developer</title>
      <dc:creator>Alan Solitar</dc:creator>
      <pubDate>Thu, 30 Aug 2018 02:15:15 +0000</pubDate>
      <link>https://dev.to/alansolitar/5-reasons-why-i-love-being-a-remote-software-developer-3hp</link>
      <guid>https://dev.to/alansolitar/5-reasons-why-i-love-being-a-remote-software-developer-3hp</guid>
      <description>&lt;p&gt;I am a huge remote work enthusiast and want to share 5 reasons why I love being a remote software developer.&lt;/p&gt;

&lt;p&gt;Being a remote software developer is something I always found alluring.  You wake up and that’s it — you’re already at work. Time to get down to business and code!&lt;/p&gt;

&lt;p&gt;How awesome is that?&lt;/p&gt;

&lt;p&gt;It kind of brings back memories of the envy I always had for those few lucky kids that lived across the street from school.&lt;/p&gt;

&lt;p&gt;Well, now I’m basically one of those kids!&lt;/p&gt;

&lt;p&gt;Here’s 5 things I love about being a remote developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. No Travel
&lt;/h3&gt;

&lt;p&gt;When somebody talks about working remotely, this is probably the first thing that comes to mind. And yes, it’s as great as you think it would be.&lt;/p&gt;

&lt;p&gt;Morning Rush ? Gone.&lt;/p&gt;

&lt;p&gt;Crowded Trains ? Gone.&lt;/p&gt;

&lt;p&gt;Bad Weather ? Who cares — you’re not going outside.&lt;/p&gt;

&lt;p&gt;Not having to travel is simply awesome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Your Own Setup
&lt;/h3&gt;

&lt;p&gt;Being able to use my home computer set up for work is great.  I don’t have to put in any equipment requests or worry about whether or not I’m going to have a comfy chair that can properly support my body.&lt;/p&gt;

&lt;p&gt;At home I have all the tools I need to keep myself a well-oiled machine. I get to use my mechanical keyboard, dual monitors, sit in my nice chair, and not worry about being subject to a non-ergonomic setup or any of the typical nonsense.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You don’t have to use headphones
&lt;/h3&gt;

&lt;p&gt;When I used to work in an office, my only escape from the noise was to slap on my headphones and put my head down. This is an OK solution, but wearing headphones all day has some serious downsides. One in particular is that it can cause “Listener fatigue.” No, I didn’t make that one up. You can view the Wikipedia entry on it &lt;a href="https://en.wikipedia.org/wiki/Listener_fatigue"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And in the first place, I only want to listen to music for fun and relaxation –not to drown out the sound of colleagues making a huge fuss over shooting a suction cup bow and arrow at a whiteboard (I know, that does sound like a blast — but it’s not fun at all when you aren’t the one participating).&lt;/p&gt;

&lt;p&gt;When working from home, I don’t have to worry about the same type of distractions.  If I want some music or I need to listen listen to a youtube video tutorial, I can just turn on speakers at a modest volume and proceed on my merry way.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Make your own lunch
&lt;/h3&gt;

&lt;p&gt;When you work in an office, there’s always the temptation (especially when you work in a big city), to go out for lunch. This either gets really expensive, or you end up snacking down on salty chips or whatever other junk food you have in your office.  And if you do pack a lunch, whatever your bring is always soggy and unappetizing by the time you actually do eat it.&lt;/p&gt;

&lt;p&gt;When working from home, I’m able to go to my kitchen and make myself a nice fresh meal in no time. It’s cheap, keeps my midsection from getting round, and gives me a nice little break in the middle of the day.&lt;/p&gt;

&lt;p&gt;If you are interested in what kind of foods I eat and how that has impacted my remote life, check out my article &lt;a href="https://remotedevdaily.com/how-diet-made-me-a-better-software-developer/"&gt;How Diet Made Me a Better Software Developer&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Feeling At Ease
&lt;/h3&gt;

&lt;p&gt;On some level, when you’re in a public place, no matter how familiar you are there, you can never truly feel at ease. There is always some level of stress — at least that’s how I feel.&lt;br&gt;&lt;br&gt;
Maybe that feeling is particular to introverts? I’m not sure.&lt;/p&gt;

&lt;p&gt;What I do know is that when I’m working remotely, I feel considerably more relaxed. I don’t have to worry about someone looking at my screen, nor do I have to feel guilty about taking a break to surf reddit.&lt;/p&gt;

&lt;p&gt;In fact, it’s particularly this feeling of “being at ease” that allows me to fully focus on my work. Just being in a comfortable environment and knowing that I can easily takes breaks when I need to, makes me a better and more efficient worker.&lt;/p&gt;

&lt;p&gt;That’s just a few of the things that I love about remote work.  Now I’d like to hear from you. Please leave a comment and let me know what you think about remote work.&lt;/p&gt;

&lt;p&gt;Also, if you are interested in reading more awesome articles about being a remote software developer, please consider subscribing to my &lt;a href="https://remotedevdaily.com/subscribe/"&gt;mailing list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thank you for reading.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://remotedevdaily.com/5-reasons-why-i-love-being-a-remote-software-developer/"&gt;5 Reasons Why I Love Being a Remote Software Developer&lt;/a&gt; appeared first on &lt;a href="https://remotedevdaily.com"&gt;Remote Dev Daily&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>health</category>
      <category>wellness</category>
      <category>remote</category>
      <category>career</category>
    </item>
  </channel>
</rss>
