<?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: simkimsia</title>
    <description>The latest articles on DEV Community by simkimsia (@simkimsia).</description>
    <link>https://dev.to/simkimsia</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%2F186911%2F12c8370a-cf1d-437d-9203-900f66376a8b.jpeg</url>
      <title>DEV Community: simkimsia</title>
      <link>https://dev.to/simkimsia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/simkimsia"/>
    <language>en</language>
    <item>
      <title>DO Hackathon: DjangoGreen - Server Management - Submission</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Mon, 11 Jan 2021 06:50:50 +0000</pubDate>
      <link>https://dev.to/simkimsia/do-hackathon-djangogreen-server-management-submission-13hf</link>
      <guid>https://dev.to/simkimsia/do-hackathon-djangogreen-server-management-submission-13hf</guid>
      <description>&lt;p&gt;First Submitted at 2021-01-11 15:00 SGT or 2021-01-11 7:00 UTC&lt;/p&gt;

&lt;p&gt;Last Posted at 2021-01-11 15:24 SGT or 2021-01-11 7:24 UTC&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;DjangoGreen is a Django-based, server management panel for DigitalOcean Droplets&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;p&gt;Built for Business&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://djangogreen.com"&gt;https://djangogreen.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VeVrfBJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/72fkferq0nzqi90wq4aq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VeVrfBJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/72fkferq0nzqi90wq4aq.gif" alt="login-via-do"&gt;&lt;/a&gt;&lt;br&gt;
if the gif is not loading on dev.to then &lt;a href="https://dev-to-uploads.s3.amazonaws.com/i/72fkferq0nzqi90wq4aq.gif"&gt;open in a new tab&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Login and create new account using DigitalOcean&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bkGcsgcE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gb0g9d440c0x988u02fu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bkGcsgcE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gb0g9d440c0x988u02fu.gif" alt="create-two-droplets"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the gif is not loading properly on dev.to then &lt;a href="https://dev-to-uploads.s3.amazonaws.com/i/gb0g9d440c0x988u02fu.gif"&gt;open in a new tab&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Create new droplets easily with just a single click&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8MocZI-M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a0vx6abppm24h9zy7qz8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8MocZI-M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a0vx6abppm24h9zy7qz8.gif" alt="destroy-droplets"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the gif is not loading properly on dev.to then &lt;a href="https://dev-to-uploads.s3.amazonaws.com/i/a0vx6abppm24h9zy7qz8.gif"&gt;open in a new tab&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Destroy droplets just as easily with a single click and a confirm dialog&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;This is to be a MVP for a server management panel for Django developers. They can easily spin up and deploy new Django apps. I got the server management panel done just in time for the submission. Will add more features going forward after the submission.&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/oppoin/django-green"&gt;https://github.com/oppoin/django-green&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The branch is : &lt;code&gt;upgrade-everything&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Oppoin/django-green/blob/upgrade-everything/LICENSE"&gt;MIT&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;I've always a desire to build my own product business. So I decide to scratch my own itch in terms of making it easier to spin up servers and deploy version 1 Django apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it
&lt;/h3&gt;

&lt;p&gt;I built using Django 3.1 and started to use this new thing called htmx. Also, I used a python wrapper for DigitalOcean API as well&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources/Info
&lt;/h2&gt;

&lt;p&gt;Technologies that I used for this project include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developers.digitalocean.com/documentation/v2/#droplets"&gt;DigitalOcean API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/koalalorenzo/python-digitalocean"&gt;python-digitalocean&lt;/a&gt; the wrapper for DO API&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.digitalocean.com/apps"&gt;DigitalOcean App Platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://htmx.org/"&gt;htmx 1.1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.djangoproject.com/en/3.1/releases/3.1/"&gt;Django 3.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback always appreciated!&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>django</category>
    </item>
    <item>
      <title>I was fighting the platform and I lost. Now I'm better for it</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Sat, 26 Dec 2020 14:14:35 +0000</pubDate>
      <link>https://dev.to/simkimsia/i-was-fighting-the-platform-and-i-lost-now-i-m-better-for-it-5e1o</link>
      <guid>https://dev.to/simkimsia/i-was-fighting-the-platform-and-i-lost-now-i-m-better-for-it-5e1o</guid>
      <description>&lt;p&gt;Last modified 2020-12-26 22:20 SGT&lt;/p&gt;

&lt;p&gt;It was after an email from the DO support followed by a Xmas eve dinner that I realized, I was fighting a losing war.&lt;/p&gt;

&lt;p&gt;I started this hackathon insistent on using Django inside Docker because that's how basically I made my own living. You see, I write quotation sofware for a living and my main framework of choice is Django. The issue is that the client insists on deploying it on-premises.&lt;/p&gt;

&lt;p&gt;I needed to reduce uncertainty. Uncertainty such as when the dev and production environment drifted too much. A key decision I made for all my Django apps is &lt;strong&gt;always run Django inside Docker&lt;/strong&gt;. Regardless for development or production. It was a good decision because it reduced the number of moving parts.&lt;/p&gt;

&lt;p&gt;I carried over that attitude into this hackathon and that was a mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  The blindspot
&lt;/h2&gt;

&lt;p&gt;I did notice from the various information sources that yes, DOAP has a standard way of deploying Django app directly within the App Platform without Docker. And the sources were plenty. From &lt;a href="https://github.com/digitalocean/sample-django" rel="noopener noreferrer"&gt;sample code repositories&lt;/a&gt; to &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-deploy-django-to-app-platform" rel="noopener noreferrer"&gt;tutorials&lt;/a&gt;, and even the &lt;a href="https://www.digitalocean.com/community/questions/app-platform-for-django-app" rel="noopener noreferrer"&gt;community questions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Yet, I persisted with running Django inside Docker. I also came across a tutorial on running Docker container inside App Platform. So I was sure my way would have no issues.&lt;/p&gt;

&lt;p&gt;Boy, was I wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  There's no Nginx needed for DOAP
&lt;/h2&gt;

&lt;p&gt;I have to give up my approach eventually. What turned it around was when I faced issues running &lt;code&gt;collectstatic&lt;/code&gt; command inside the main App Platform component.&lt;/p&gt;

&lt;p&gt;Don't get me wrong. The command works when I run it via the console inside the main component. &lt;/p&gt;

&lt;p&gt;But here lies the rub. The browser still cannot access the staticfiles regardless. &lt;/p&gt;

&lt;p&gt;The reason for this mysterious behavior is the way App Platform is setup. App Platform doesn't require your app to run its own Nginx or any other web server software because your app utilizes the DigitalOcean's global CDN. &lt;/p&gt;

&lt;p&gt;App Platform is a PaaS (Platform as a Service). Therefore, it tends to be more prescriptive on how the various components talk to one another. The idea is that DOAP prefers that you spin up a separate component to serve the static files. Hence, the CDN setup and the non-necessity of a Nginx.&lt;/p&gt;

&lt;p&gt;Every architectural decision has its implications. With a decision like that, that means somehow the &lt;code&gt;collectstatic&lt;/code&gt; command needs to run &lt;strong&gt;inside the component&lt;/strong&gt; responsible for handling the &lt;code&gt;/static&lt;/code&gt; route. Not inside the main component where the django is running in.&lt;/p&gt;

&lt;p&gt;Since the console provided by DO has access to only the main component, therefore the developer is reliant on other ways to activate the &lt;code&gt;collectstatic&lt;/code&gt; command. &lt;/p&gt;

&lt;h2&gt;
  
  
  Buildpacks contain automated commands
&lt;/h2&gt;

&lt;p&gt;Recall I said earlier about how DOAP allows you to install Django directly into its app components? The way they do it is by using buildpacks (and they look like buildpacks from heroku). &lt;/p&gt;

&lt;p&gt;Inside the python buildpack meant to install Django, there is an automatic instruction to run the &lt;code&gt;collectstatic&lt;/code&gt; command whenever there's a deploy. &lt;/p&gt;

&lt;p&gt;And I've noticed that if you choose to run the main component using Docker, the other related components such as the one for static files tend to inherit this setting. You cannot override it just at the static files serving component. You cannot choose to have the main component run using Docker and the other components run differently using standard buildpacks provided.&lt;/p&gt;

&lt;p&gt;In other words, instead of this&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpoajqew1bb0267vv5rge.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpoajqew1bb0267vv5rge.png" alt="original plan"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My setup is now&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flcoahbc5l30vu1cofgal.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flcoahbc5l30vu1cofgal.png" alt="current-plan"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, at least I figured out in a deep sense (okay, deeper before I began) how the DigitalOcean's App Platform worked.&lt;/p&gt;

&lt;p&gt;And I must say, DOAP is highly promising in terms of where they want to go with this. I can see how cool it eventually will become. &lt;/p&gt;

&lt;p&gt;Right now, if I were to choose which DO product to use for a small side project, I would still go with the Droplets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time spent thus far 🕒
&lt;/h2&gt;

&lt;p&gt;For first-time reader, this is the section where I explicitly share the time spent. This is to set realistic expectations for readers and myself. &lt;/p&gt;

&lt;p&gt;This week, I have spent much more time on this side project.&lt;/p&gt;

&lt;h3&gt;
  
  
  So far
&lt;/h3&gt;

&lt;p&gt;Total time so far: 27.8 hr&lt;br&gt;
Dev work so far: 22.95 hr&lt;br&gt;
Writing so far: 4.85 hr&lt;/p&gt;

&lt;p&gt;Average per week: ~10 hrs of Dev work, ~2 hrs of Writing &lt;/p&gt;

&lt;h3&gt;
  
  
  Dec 10 to Dec 19 2020
&lt;/h3&gt;

&lt;p&gt;In this period&lt;/p&gt;

&lt;p&gt;Total time this period: 12.95 hr&lt;br&gt;
Dev work this period: 9.1 hr&lt;br&gt;
Writing this period: 3.85 hr&lt;/p&gt;

&lt;h3&gt;
  
  
  Dec 20 to Dec 26 2020
&lt;/h3&gt;

&lt;p&gt;In this period&lt;/p&gt;

&lt;p&gt;Total time this period: 14.85 hr&lt;br&gt;
Dev work this period: 13.85 hr&lt;br&gt;
Writing this period: 1 hr&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Work&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-21&lt;/td&gt;
&lt;td&gt;Dev&lt;/td&gt;
&lt;td&gt;0.75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-22&lt;/td&gt;
&lt;td&gt;Dev&lt;/td&gt;
&lt;td&gt;1.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-23&lt;/td&gt;
&lt;td&gt;Dev&lt;/td&gt;
&lt;td&gt;4.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-24&lt;/td&gt;
&lt;td&gt;Dev&lt;/td&gt;
&lt;td&gt;2.75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-25&lt;/td&gt;
&lt;td&gt;Dev&lt;/td&gt;
&lt;td&gt;4.65&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-26&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  2020-12-26
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Writing up this post 1 hr&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-25
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Upgrade everything: django, postgres, and python and test it locally 1.5 hrs&lt;/li&gt;
&lt;li&gt;Abandon using docker to run django on DOAP 3.15 hrs&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-24
&lt;/h3&gt;

&lt;p&gt;1.Run &lt;code&gt;collectstatic&lt;/code&gt; in main component does not work . Try all sorts of ways to fix it. 2.25hrs&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Try to push the static files to repo to test theory 0.5 hrs&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-23
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Adding custom domain, making allauth work with github on localhost 3.1 hrs&lt;/li&gt;
&lt;li&gt;Make allauth work on remote 1.1 hrs&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-22
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;the docker finally works locally 1.5hr&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-21
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;work on making docker work locally 0.45hrs&lt;/li&gt;
&lt;li&gt;then test run the docker running locally spend about 0.3  hrs&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>dohackathon</category>
      <category>django</category>
      <category>docker</category>
    </item>
    <item>
      <title>More than 9 hours spent on dev work so far in this dohackathon</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Sat, 19 Dec 2020 11:14:31 +0000</pubDate>
      <link>https://dev.to/simkimsia/more-than-9-hours-spent-on-dev-work-so-far-in-this-dohackathon-55j9</link>
      <guid>https://dev.to/simkimsia/more-than-9-hours-spent-on-dev-work-so-far-in-this-dohackathon-55j9</guid>
      <description>&lt;p&gt;Last modified 2020-12-19 19:10 SGT&lt;/p&gt;

&lt;p&gt;I don't want to write a lot today. Just want to update how I have been spending my time on this #dohackathon. More updates next time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time spent thus far 🕒
&lt;/h2&gt;

&lt;p&gt;For first-time reader, this is the section where I explicitly share the time spent. This is to set realistic expectations for readers and myself. &lt;/p&gt;

&lt;p&gt;Total time so far: 12.95 hr&lt;br&gt;
Dev work so far: 9.1 hr&lt;br&gt;
Writing so far: 3.85 hr&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Work&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-19 Saturday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;0.1 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-19 Saturday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;0.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-18 Friday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;0.1 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-17 Thursday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;1.25 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-16 Wednesday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;1.25 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-15 Tuesday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;2.25 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-14 Monday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;1.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-13 Sunday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;0.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-13 Sunday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;2 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-12 Saturday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;2 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-12 Saturday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;1.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  2020-12-19 Saturday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Separate requirements.txt into base.txt, local.txt, and production.txt (0.5 hr)&lt;/li&gt;
&lt;li&gt;Write up time spent (0.1 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-18 Friday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Make code changes to include the github provider using allauth (0.1 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-17 Thursday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Try out the DO support suggestion on how to customize the &lt;code&gt;dockerfile_path&lt;/code&gt;. Failed 🛑&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;django-allauth&lt;/code&gt; in preparation to add github login to my app. Success ✅&lt;/li&gt;
&lt;li&gt;Try out the theory on using doctl to update the app sec and success&lt;/li&gt;
&lt;li&gt;Total spent is (1.25 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-16 Wednesday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Write a 3rd post in the series in DEV (1.25 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-15 Tuesday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Add a &lt;code&gt;frontpage&lt;/code&gt; app, &lt;code&gt;static&lt;/code&gt;, and &lt;code&gt;staticfiles&lt;/code&gt; folder in codebase to experiment (1.25 hrs)&lt;/li&gt;
&lt;li&gt;Make the landing page to work finally (1 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-14 Monday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Work on environment variables and gunicorn successfully. Fail to get the admin page up though (1.5 hrs)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-13 Sunday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Trying out Nate suggestion involving Docker and Django on DOAP (0.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing second post on DEV (0.5 hrs)&lt;/li&gt;
&lt;li&gt;Trying out the codefresh example as suggested by Dikshith (1 hr)&lt;/li&gt;
&lt;li&gt;Wrote a new ticket and purchased a managed DB cluster on DigitalOcean (0.25 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-12 Saturday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Trying out how to deploy from GitHub to DOAP and other engineering stuff (1.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing on DEV and figuring out how to write in DEV (2 hrs)&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>I'm calling it DjangoGreen 3/n</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Wed, 16 Dec 2020 15:02:23 +0000</pubDate>
      <link>https://dev.to/simkimsia/i-m-calling-it-djangogreen-3-n-467n</link>
      <guid>https://dev.to/simkimsia/i-m-calling-it-djangogreen-3-n-467n</guid>
      <description>&lt;p&gt;Last modified 2020-12-16 22:55 SGT&lt;/p&gt;

&lt;p&gt;With the help of the DigitalOcean customer support, I managed to overcome the biggest obstacle (so far and hopefully stays that way!) for my idea. Which means I can reveal the actual project name I wanted to call it -- DjangoGreen. &lt;/p&gt;

&lt;p&gt;The idea for my app goes like this.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You have an idea for a SaaS app. &lt;/li&gt;
&lt;li&gt;You chose GitHub, Django, Docker, Stripe, and DigitalOcean for your stack. &lt;/li&gt;
&lt;li&gt;You type in the project name and press a button. Two things happen.&lt;/li&gt;
&lt;li&gt;You get a working v1 SaaS app instantly on DigitalOcean and its codebase inside a GitHub repo. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the idea. Basically, it's an idea-to-v1 instant SaaS builder.&lt;/p&gt;

&lt;p&gt;If you want to have &lt;a href="https://www.defmacro.org/2013/09/26/products.html"&gt;gamechanger&lt;/a&gt; features in your SaaS, you have to write those yourself. What DjangoGreen is responsible for are the mission-critical, standard SaaS features. DjangoGreen gives you a jumpstart in getting your v1 in front of your potential customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was the biggest obstacle?
&lt;/h2&gt;

&lt;p&gt;I can now deploy a Django v2.2 on DigitalOcean's App Platform (DOAP) using Docker. The biggest risk I thought was that it might be very difficult or impossible to deploy Django via a Dockerfile on DOAP.&lt;/p&gt;

&lt;p&gt;I found tutorials on deploying:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-deploy-django-to-app-platform"&gt;Django on DOAP&lt;/a&gt; and,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.digitalocean.com/docs/app-platform/languages-frameworks/docker/"&gt;Dockerfile on DOAP&lt;/a&gt;. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But definitely none that are Django via Dockerfile on DOAP.&lt;/p&gt;

&lt;p&gt;I insist on deploying via Dockerfile because I want a universal format for deployment. GitHub may look and work slightly differently from their competitors. Underneath it all, GitHub and their competitors can work with your code so long as you choose Git. Git is pretty much universal and an open format for version control.&lt;/p&gt;

&lt;p&gt;Similarly, I want &lt;code&gt;Dockerfile&lt;/code&gt; to be the universal format for deployment. Choosing Docker acts as an enabling constraint too. It prevents DjangoGreen from being too coupled with DigitalOcean's App Platform.&lt;/p&gt;

&lt;p&gt;I'm relieved I manage to overcome that obstacle despite the lack of documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aM0nyt8A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xb53egcnys6zd8wt3a58.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aM0nyt8A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xb53egcnys6zd8wt3a58.png" alt="CleanShot 2020-12-16 at 22.15.25"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  So what's next?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;I like to find (a) simple solutions (b) to overlooked problems (c) that actually need to be solved, and (d) deliver them as informally as possible, (e) starting with a very crude version 1, then (f) iterating rapidly.&lt;/p&gt;

&lt;p&gt;-- Paul Graham at &lt;a href="http://www.paulgraham.com/newthings.html"&gt;Six Principles for Making New Things&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I only wrote down some brief steps for my crude version 1 in my linear app. &lt;/p&gt;

&lt;p&gt;The key persona I have for the user of DjangoGreen is the product developer. My notes consist only of the developer flow using v1.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Flow for v1
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Login using GitHub (Assume developer has a GitHub Free account and DigitalOcean account)&lt;/li&gt;
&lt;li&gt;Type repo name (Assume name is okay)&lt;/li&gt;
&lt;li&gt;Press Submit button (Assume this button triggers both creation of GitHub repo and the deployment on DigitalOcean)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This results in the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new GitHub repo with the code&lt;/li&gt;
&lt;li&gt;A deployment on DOAP as well&lt;/li&gt;
&lt;li&gt;The site has a Coming Soon! landing page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's pretty much my notes. I do want to add that the deployment on DOAP might not happen so seamlessly. &lt;/p&gt;

&lt;p&gt;From the email conversation I have with DO's customer support, each app's first-time deployment may require the developer to manually key in additional info in the DigitalOcean admin panel. Subsequent deploys can happen automatically.&lt;/p&gt;

&lt;p&gt;On to today's summary of obstacles and time spent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blockers and Papercuts
&lt;/h2&gt;

&lt;p&gt;For the first-time reader, this is a quick recap of the 4 categories of obstacles&lt;/p&gt;

&lt;p&gt;🛑 Absolute Blocker: I cannot get past this (yet?) and it's critical to building the app&lt;br&gt;
🚧 Critical Slowdown: I took more than 10 mins to figure this out and it's critical to building the app&lt;br&gt;
🦟 Annoying Mosquito: Took more than 10 mins or unsolvable but not critical&lt;br&gt;
🧘🏻‍♂️ Zen: Solved in less than 10 mins and not critical&lt;/p&gt;

&lt;p&gt;🧘🏻‍♂️ Zen&lt;br&gt;
Not any today.&lt;/p&gt;

&lt;p&gt;🦟 Annoying Mosquito&lt;/p&gt;

&lt;p&gt;Two DEV related markdown issue. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I cannot appear to do indentation for nested numbered list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Action taken: Accept and move on. 🤷🏻‍♂️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I realize that to have a hero image or cover image, I need to place the cover_image: link_to_image within your triple-dashed lines. Aka your &lt;a href="https://dev.to/p/editor_guide#front-matter"&gt;front matter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;series&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Building GoGreen on DigitalOcean App Platform Hackathon Series&lt;/span&gt;
&lt;span class="na"&gt;cover_image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://dev-to-uploads.s3.amazonaws.com/i/tn54kn95003u4gzbbvn8.png&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🚧 Critical Slowdown&lt;/p&gt;

&lt;p&gt;The past 2-3 days I have spent hours figuring out why I cannot even get the landing page to work and working with the DO customer support. So this was the critical slowdown.&lt;/p&gt;

&lt;p&gt;I had to piece together the exact sequence of manual steps, and make the right configuration and code changes before this was solved. I feel like I can write my own DigitalOcean how-to guide at this point.&lt;/p&gt;

&lt;p&gt;The next step is to figure out GitHub login. I will probably go with installing the plugin &lt;code&gt;django-allauth&lt;/code&gt; to solve this.&lt;/p&gt;

&lt;p&gt;🛑 Absolute Blocker&lt;/p&gt;

&lt;p&gt;Not at this point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time spent thus far 🕒
&lt;/h2&gt;

&lt;p&gt;For first-time reader, this is the section where I explicitly share the time spent. This is to set realistic expectations for readers and myself. &lt;/p&gt;

&lt;p&gt;Total time so far: 11 hr&lt;br&gt;
Dev work so far: 7.25 hr&lt;br&gt;
Writing so far: 3.75 hr&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Work&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-16 Wednesday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;1.25 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-15 Tuesday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;2.25 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-14 Monday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;1.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-13 Sunday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;0.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-13 Sunday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;2 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-12 Saturday&lt;/td&gt;
&lt;td&gt;Writing&lt;/td&gt;
&lt;td&gt;2 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-12 Saturday&lt;/td&gt;
&lt;td&gt;Dev work&lt;/td&gt;
&lt;td&gt;1.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  2020-12-16 Wednesday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Write a 3rd post in the series in DEV (1.25 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-15 Tuesday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Add a &lt;code&gt;frontpage&lt;/code&gt; app, &lt;code&gt;static&lt;/code&gt;, and &lt;code&gt;staticfiles&lt;/code&gt; folder in codebase to experiment (1.25 hrs)&lt;/li&gt;
&lt;li&gt;Make the landing page to work finally (1 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-14 Monday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Work on environment variables and gunicorn successfully. Fail to get the admin page up though (1.5 hrs)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-13 Sunday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Trying out Nate suggestion involving Docker and Django on DOAP (0.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing second post on DEV (0.5 hrs)&lt;/li&gt;
&lt;li&gt;Trying out the codefresh example as suggested by Dikshith (1 hr)&lt;/li&gt;
&lt;li&gt;Wrote a new ticket and purchased a managed DB cluster on DigitalOcean (0.25 hr)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2020-12-12 Saturday
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Trying out how to deploy from GitHub to DOAP and other engineering stuff (1.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing on DEV and figuring out how to write in DEV (2 hrs)&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>dohackathon</category>
      <category>django</category>
      <category>docker</category>
    </item>
    <item>
      <title>Building GoGreen 2/n</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Sat, 12 Dec 2020 10:52:23 +0000</pubDate>
      <link>https://dev.to/simkimsia/building-gogreen-2-n-1bi2</link>
      <guid>https://dev.to/simkimsia/building-gogreen-2-n-1bi2</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--liJ8U5oW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tfkqr1byvn4h9o4i9kdk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--liJ8U5oW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tfkqr1byvn4h9o4i9kdk.png" alt="CleanShot 2020-12-13 at 11.12.19"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last posted at 2020-12-13 11:35 SGT&lt;/p&gt;

&lt;p&gt;I was not playing coy when I refuse to talk about what GoGreen is in my &lt;a href="https://dev.to/simkimsia/building-gogreen-1-n-1pfp"&gt;previous post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm just not confident it can be done. A key part of the value proposition involves certain engineering efforts between DigitalOcean and Docker not well documented on the Internet.&lt;/p&gt;

&lt;p&gt;I reached out to DigitalOcean support and even offering to pay for paid support to expedite my fact-finding requests.&lt;/p&gt;

&lt;p&gt;Turns out DigitalOcean doesn't do paid support. But surprisingly, they got back to me via email pretty quickly (less than 5 hours after I asked) and offered me a suggestion (in significant detail).&lt;/p&gt;

&lt;p&gt;I'm impressed with that level of support. I'm comparing it against my experiences using paid support for AWS. And DigitalOcean at this point is outdoing even the supposedly customer-centric Amazon.&lt;/p&gt;

&lt;p&gt;Anyway, back to the updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I tried today
&lt;/h2&gt;

&lt;p&gt;Typically, when you ask any support questions to any cloud or platform provider, the first email response tends to give you links to the existing documentation. Then it takes about 3-5 emails stretched over possibly weeks before they realize the question you ask is indeed pretty unique.&lt;/p&gt;

&lt;p&gt;This happened to me once this year with AWS. In fact, I even managed to point out errors in their own documentation.&lt;/p&gt;

&lt;p&gt;This time, DigitalOcean responded to my initial "Nope, I have read that before and that is not what I want. What I want is to do XYZ. And there's no documentation that covers that exactly." response within 2 hours. And the response was highly competent from a senior engineer in DigitalOcean called "Nate".&lt;/p&gt;

&lt;p&gt;Now I don't expect it to be perfect and therefore, I met my first roadblock after trying out the method from Nate.&lt;/p&gt;

&lt;p&gt;Which brings us to today's Blockers and Papercuts&lt;/p&gt;

&lt;h3&gt;
  
  
  Blockers and Papercuts
&lt;/h3&gt;

&lt;p&gt;For the first-time reader, this is a quick recap of the 4 categories of obstacles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛑 Absolute Blocker: I cannot get past this (yet?) and it's critical to building the app&lt;/li&gt;
&lt;li&gt;🚧 Critical Slowdown: I took more than 10 mins to figure this out and it's critical to building the app&lt;/li&gt;
&lt;li&gt;🦟 Annoying Mosquito: Took more than 10 mins or unsolvable but not critical&lt;/li&gt;
&lt;li&gt;🧘🏻‍♂️ Zen: Solved in less than 10 mins and not critical&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🧘🏻‍♂️ Zen
&lt;/h4&gt;

&lt;p&gt;Not any today.&lt;/p&gt;

&lt;h4&gt;
  
  
  🦟 Annoying Mosquito
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Editing the title of a DEV post after it's been published appears to be impossible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Action taken: Accept and move on. 🤷🏻‍♂️&lt;/p&gt;

&lt;h4&gt;
  
  
  🚧 Critical Slowdown
&lt;/h4&gt;

&lt;p&gt;Not any today.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛑 Absolute Blocker
&lt;/h4&gt;

&lt;p&gt;So my blocker from taking the next step is this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RYgWTgcs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/toue2jrp5zd8mczltr7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RYgWTgcs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/toue2jrp5zd8mczltr7b.png" alt="CleanShot 2020-12-13 at 11.21.09"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After I tried Nate's method and attempted a deploy, I got a deploy error. Not sure what that means, hence I fired a response to Nate and now praying for an answer.&lt;/p&gt;

&lt;p&gt;As you can tell from the name of the log, yes, I'm attempting to do something involving Django for my DigitalOcean App Platform (DOAP) hackathon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time spent thus far 🕒
&lt;/h2&gt;

&lt;p&gt;✨ New section!&lt;/p&gt;

&lt;p&gt;Given most of us are busy with day jobs or schools, taking on a side project such as this hackathon may lead to unrealistic expectations. So, I felt it would be good to share if we can all share the actual time we spent. Of course, I have to lead by example.&lt;/p&gt;

&lt;p&gt;After all, if there's anything 2020 has taught me, it's that compassion towards my own self is important. So here goes:&lt;/p&gt;

&lt;p&gt;Overall time spent thus far: 4.5 hrs&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-12 Saturday&lt;/td&gt;
&lt;td&gt;4.5 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020-12-13 Sunday&lt;/td&gt;
&lt;td&gt;1 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Trying out how to deploy from GitHub to DOAP and other engineering stuff (1.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing on DEV and figuring out how to write in DEV (2 hrs)&lt;/li&gt;
&lt;li&gt;Trying out Nate suggestion involving Docker and Django on DOAP (0.5 hrs)&lt;/li&gt;
&lt;li&gt;Writing second post on DEV (0.5 hrs)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Let's hope Nate or any of his colleagues in DO get back to me with a permanent solution in the next 24 hrs. Fingers crossed! 🤞&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>django</category>
      <category>docker</category>
    </item>
    <item>
      <title>Building GoGreen 1/n</title>
      <dc:creator>simkimsia</dc:creator>
      <pubDate>Sat, 12 Dec 2020 10:44:38 +0000</pubDate>
      <link>https://dev.to/simkimsia/building-gogreen-1-n-1pfp</link>
      <guid>https://dev.to/simkimsia/building-gogreen-1-n-1pfp</guid>
      <description>&lt;h2&gt;
  
  
  What I'm building
&lt;/h2&gt;

&lt;p&gt;Codename: GoGreen&lt;/p&gt;

&lt;p&gt;I'll reveal what I want to build as soon as I solved the blockers. If I cannot solve the blockers fast enough, I may have to abandon the approach altogether.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I've done so far
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Create an app using DigitalOcean’s App Platform that falls under one of the listed categories (I chose "Build for Biz")&lt;/li&gt;
&lt;li&gt;✅ Fill out &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSdHljGT15tIBAl6awNWh1-s3LCP3HMPPgZX5WE9LgHISp6Oiw/viewform?usp=sf_link"&gt;this form&lt;/a&gt; to get a $50 credit for DigitalOcean, good for 60 days from the date of redemption.&lt;/li&gt;
&lt;li&gt;✅ Setup a private Github repo&lt;/li&gt;
&lt;li&gt;✅ Use one of the following permissive licenses for your code: MIT ✅, Apache, BSD-2, BSD-3, or Commons Clause.&lt;/li&gt;
&lt;li&gt;✅ Create the first of N number of DEV posts for this series of DO hackathon 2020-2021 (Well, you're looking at it now, aren't you? 😁 )&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Getting GoGreen working in DigitalOcean App Platform
&lt;/h3&gt;

&lt;p&gt;The product I'm thinking of building involves heavy use of Docker. Though I might eventually abandon that if it's too complicated.&lt;/p&gt;

&lt;p&gt;And as part of the overall value, I cannot use DigitalOcean's App Platform (henceforth I'm calling it as DOAP. I pronounce it as "DOPE!". As in SOAP but with a D) default of having the Dockerfile being in the root of the repository. &lt;/p&gt;

&lt;p&gt;Which means I need to &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ install doctl and doctl access my DO account&lt;/li&gt;
&lt;li&gt;◻️ setup the App Sec as a Yaml file accordingly in my GitHub repository&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;... amongst possibly more steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blockers and Papercuts
&lt;/h3&gt;

&lt;p&gt;As a typical Singaporean 🇸🇬 , &lt;del&gt;complaining&lt;/del&gt; giving constructive criticism is in our blood.&lt;/p&gt;

&lt;p&gt;This section covers all the obstacles ranging from absolute roadblocks to minor annoyances I face as I work towards this hackathon.&lt;/p&gt;

&lt;p&gt;I'll give 4 categories to describe the potential obstacles I face in each post.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛑 Absolute Blocker: I cannot get past this (yet?) and it's critical to building the app&lt;/li&gt;
&lt;li&gt;🚧 Critical Slowdown: I took more than 10 mins to figure this out and it's critical to building the app&lt;/li&gt;
&lt;li&gt;🦟 Annoying Mosquito: Took more than 10 mins or unsolvable but not critical&lt;/li&gt;
&lt;li&gt;🧘🏻‍♂️ Zen: Solved in less than 10 mins and not critical&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🧘🏻‍♂️ Zen
&lt;/h4&gt;

&lt;p&gt;Now that I think about it...  is it worth mentioning non-critical obstacles that are solved in less than 10 minutes? 🤔&lt;/p&gt;

&lt;h4&gt;
  
  
  🦟 Annoying Mosquito
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Cannot use the full GitHub flavored Markdown in DevTo to create checkbox &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I mean, what era are we living in already? Anyway, I gave up and used emoji like ✅ and ◻️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not clear how to trigger series inside DevTo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Is it &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;series: [series name]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;series: ["series name"]&lt;/code&gt; which was what's given at the DEV article on this hackathon&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;series: "series name"&lt;/code&gt; OR &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;series: series name&lt;/code&gt;? &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Oh, I need to wrap that between two lines of &lt;code&gt;---&lt;/code&gt;? &lt;/p&gt;

&lt;p&gt;Don't tell me in words. Show me! 😕&lt;/p&gt;

&lt;p&gt;By the way, the answer is, right below where you put the main image, type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt; 
&lt;span class="na"&gt;series&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Building GoGreen on DigitalOcean App Platform Hackathon Series&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  🚧 Critical Slowdown
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Searching for answers on how to change the default path to the Dockerfile in the repo for DOAP &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is way easier provided you know the concepts of &lt;code&gt;doctl&lt;/code&gt; and &lt;code&gt;App Sec&lt;/code&gt; which I didn't at first 🤷🏻‍♂️&lt;/p&gt;

&lt;h4&gt;
  
  
  🛑 Absolute Blocker
&lt;/h4&gt;

&lt;p&gt;None so far, and hopefully, none that I'll ever meet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Up to now, I have spent about 3.5 hours on this. More than half of which is to write this up. Anything to avoid doing real work, am I right? 😁 &lt;/p&gt;

&lt;p&gt;And since this is a side project, I have to stop now.&lt;/p&gt;

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