<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Django on Janusworx</title>
    <link>https://janusworx.com/tags/django/</link>
    <description>Recent content in Django on Janusworx</description>
    <image>
      <title>Janusworx</title>
      <url>https://janusworx.com/images/jw-logo.png</url>
      <link>https://janusworx.com/images/jw-logo.png</link>
    </image>
    <generator>Hugo -- 0.163.0</generator>
    <language>en</language>
    <lastBuildDate>Wed, 30 Jun 2021 18:42:52 +0530</lastBuildDate>
    <atom:link href="https://janusworx.com/tags/django/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Learning Backend WebDev, Log #11 - Got a Django Certificate! Some Reflections</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-11-django-cert-some-reflections/</link>
      <pubDate>Wed, 30 Jun 2021 18:42:52 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-11-django-cert-some-reflections/</guid>
      <description>&lt;p&gt;Been a few days since I wrote about Django.&lt;br&gt;
Last week was a roller coaster personally, so I took things slow.&lt;br&gt;
And then got back to a rhythm this week.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;The daily work’s paid off and I managed to hit a milestone.&lt;br&gt;
I got done with my Django course, today! :)&lt;br&gt;
Hurrah!&lt;/p&gt;
&lt;hr style=&#34;margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;&#34; /&gt;
&lt;p&gt;&lt;a href=&#34;https://janusworx.com/images/2021/edx-django-cert.png&#34;&gt;&lt;img alt=&#34;Picture of my certificate, passing the Django Course&#34; loading=&#34;lazy&#34; src=&#34;https://janusworx.com/images/2021/edx-django-cert.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Been a few days since I wrote about Django.<br>
Last week was a roller coaster personally, so I took things slow.<br>
And then got back to a rhythm this week.</p>
<!-- TEASER_END -->  
<p>The daily work’s paid off and I managed to hit a milestone.<br>
I got done with my Django course, today! :)<br>
Hurrah!</p>
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
<p><a href="/images/2021/edx-django-cert.png"><img alt="Picture of my certificate, passing the Django Course" loading="lazy" src="/images/2021/edx-django-cert.png"></a></p>
<p><a href="https://credentials.edx.org/credentials/c2b43bbea674427ea6b764993ce00b6d/">Cert online.</a></p>
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
<h2 id="some-reflections-in-no-particular-order">Some Reflections (in no particular order)</h2>
<ul>
<li>I should keep better logs and notes about how I go about doing work. I kept deleting my sqlite database, trying to fix model errors, forgetting that I’d moved to Postgres.</li>
<li>This whole Django journey has built up on the last one. While I stood up a Django project the last time, I didn’t understand or grasp what I was doing.</li>
<li>This time around, I’ve understood the <em>why</em> and I’ve gotten a better mental model of how it all hangs together. What the request response cycle is. What needs to happen then. How it’s mostly all <a href="https://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD.</a> How Django enables me to tie all these pieces together using models and views and forms and templates and a million and one little things to ease my life.</li>
<li>I’m now confident enough to go try standing up a Django project on my own and then muddle through, to build something I want.</li>
<li>I started the year, flailing about in the world of programming, because <em>everything</em> interested me. I’m thankful I took the time, to figure out what interested me and where I wanted to apply my focus to. Once I zeroed in on doing web development with Python, I’ve made much better progress learning.</li>
<li>While I understand that I need to <em>write</em> a lot more code, I want to finish building up a firm foundation first. To that end I want to <a href="https://www.pg4e.com/">learn Postgres</a>, finish up <a href="https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript">CS50W</a>, crash learn <a href="https://www.udemy.com/course/datastructurescncpp/">Data Structures &amp; Algorithms</a> (for my Indian interviews. Nearly every Indian company I’ve interviewed with, has made me do this and I’ve flunked miserably every time. I hope to miserably pass muster at least, going forward) and a <a href="https://www.edx.org/course/c-programming-language-foundations">wee bit of C.</a> Also JavaScript. Lots to learn. I need to do this bit by bit daily, just like I did this part so far.</li>
<li>I understand what folks say, when they talk about programming. I understand their opinions better. Makes me realise that I’ve gotten the basics down pat enough.<br>
To wit, Dr. Chuck was opining on destructors in classes in Javascript, and why there weren’t there in the early days and why they might be desirable now. And all the while, I was nodding my head in agreement, having understood every word, going uh-huh, uh-huh. Why? Yes! It’d be a darned good idea. I could do custom cleanup when my classes get torn down. (And this, from someone who has not written more than two pages of JavaScript yet 😂)</li>
<li>I kept waiting all this while, for it get easier, to reach some abstract level by means of some deep insight, hoping once I’d master <em>that</em>, I could then just fly along, spewing stuff, left right and centre, creating amazing works of code.<br>
What I found instead, is a bunch of primitives that folk all over the world, take and put together in different ways, using various methods of combining them.</li>
<li>I realised that most of programming is just convention, based on a few truths. Which means that there is no grand unifying theory that ties all this in a neat bow. It’s just a lot of dedicated folk putting in the toil to create said works of code and polishing them to make it look beautiful. It’s mostly hard work. Not Genius.<br>
Actual breakthroughs and genuine insights that change everything are few and far between.</li>
<li>And this makes me strangely happy. If it’s just hard work … well that I can do :) Why didn’t someone just point this out to me earlier? Knowledge work is just work? Putting in the hours and work and toil? Sure! Sign me up!</li>
<li>I figure, it’s turtles all the way down. The work consists of studying something complex, breaking it down, understanding it, practicing it, making it your own and creating a portfolio to show it off. Basically the same journey as a carpenter. Apprenticeship -&gt; Journeyman -&gt; Craftsman.</li>
<li>Finally, I’ve spent so much time telling folk, that becoming a <a href="https://janusworx.com/books-through-the-years/">good reader</a>, took me <em>years.</em> And as usual I’ve been domain blind. I did not see, it’s the same thing with becoming a good programmer. Toil and patience.</li>
</ul>
<p>I’m on a break for the whole of next week, and will be back after, to begin the rest of the journey, refreshed.<br>
Here’s to upwards and onwards!</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #10 - A Very Long, and a Really Good Day</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-10-a-very-long-and-a-really-good-day/</link>
      <pubDate>Sat, 19 Jun 2021 17:55:52 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-10-a-very-long-and-a-really-good-day/</guid>
      <description>&lt;p&gt;I did. I really did have a good work day!&lt;br&gt;
I had one of those, whatchacallit, &lt;a href=&#34;https://www.ted.com/talks/mihaly_csikszentmihalyi_flow_the_secret_to_happiness&#34;&gt;&lt;em&gt;flow states.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;h2 id=&#34;what-i-learnt-in-django-land&#34;&gt;What I learnt in Django land&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I learnt nothing!&lt;/li&gt;
&lt;li&gt;Well I learnt nothing new. I spent the whole day and what little I time I had yesterday, trying to crack the assignment for module three of the course.&lt;/li&gt;
&lt;li&gt;I struggled and struggled and then, struggled a bit more.&lt;/li&gt;
&lt;li&gt;The more I write Django, the more intuitive it feels, like I can never make out, what’s provided by Python and what has been built for me by Django. It all feels like one seamless whole.&lt;/li&gt;
&lt;li&gt;The blow up Django cycle continued today, to an extreme, it felt like. But it felt good and iterative, like I had a sandbox to play in, as I wished.&lt;/li&gt;
&lt;li&gt;There’d be a decimal error and I’d fix it and then there’d be some sort of bounds error because I’d built too little capacity to hold stuff in my models and I’d go fix it and then I’d figure that this method returns a tuple, so I need to catch it in two variables and throw one away, just so I could have at the data I was interested in, and I learnt how to rebuild my models and migrations and reset my database and I spent two exasperating hours on a consistent Django blowup that just should not have been possible. And then I realised, I was assigning the same data to two models (same variable.) Long story short, I learned a lot.&lt;/li&gt;
&lt;li&gt;Working over the past two days reminded me of this &lt;a href=&#34;https://wizardzines.com/comics/track-your-progress/&#34;&gt;Julia Evans&lt;/a&gt; page, that I serendipitously came across a while ago.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style=&#34;margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;&#34; /&gt;
![Julia Evans comic explaining the importance of tracking progress][jeiln]
&lt;hr style=&#34;margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;&#34; /&gt;
&lt;h2 id=&#34;focus-follow-up-aka-flow-what&#34;&gt;Focus Follow Up aka Flow what?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This probably, was the first time, I had a state of flow while programming (I used to have them all the time at work as well lots of times, when I am writing).&lt;/li&gt;
&lt;li&gt;This probably means I am comfortable with the level I am at, and I should stretch a bit more.&lt;/li&gt;
&lt;li&gt;Did eleven, 30 minute sessions with no aborts. I lost track of time, quite a bit.&lt;/li&gt;
&lt;li&gt;Am done with three out of the four modules of this course, I’m on.&lt;/li&gt;
&lt;li&gt;After yesterday, today’s progress really feels good.&lt;/li&gt;
&lt;li&gt;While I’ll take my wins where I can find them, I should be cognizant of the fact that it was the uncomfortable practice of the week that brought me here.&lt;/li&gt;
&lt;li&gt;And so, I want to get more comfortable with feeling uncomfortable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here’s to finishing strong!&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I did. I really did have a good work day!<br>
I had one of those, whatchacallit, <a href="https://www.ted.com/talks/mihaly_csikszentmihalyi_flow_the_secret_to_happiness"><em>flow states.</em></a></p>
<!-- TEASER_END -->
<h2 id="what-i-learnt-in-django-land">What I learnt in Django land</h2>
<ul>
<li>I learnt nothing!</li>
<li>Well I learnt nothing new. I spent the whole day and what little I time I had yesterday, trying to crack the assignment for module three of the course.</li>
<li>I struggled and struggled and then, struggled a bit more.</li>
<li>The more I write Django, the more intuitive it feels, like I can never make out, what’s provided by Python and what has been built for me by Django. It all feels like one seamless whole.</li>
<li>The blow up Django cycle continued today, to an extreme, it felt like. But it felt good and iterative, like I had a sandbox to play in, as I wished.</li>
<li>There’d be a decimal error and I’d fix it and then there’d be some sort of bounds error because I’d built too little capacity to hold stuff in my models and I’d go fix it and then I’d figure that this method returns a tuple, so I need to catch it in two variables and throw one away, just so I could have at the data I was interested in, and I learnt how to rebuild my models and migrations and reset my database and I spent two exasperating hours on a consistent Django blowup that just should not have been possible. And then I realised, I was assigning the same data to two models (same variable.) Long story short, I learned a lot.</li>
<li>Working over the past two days reminded me of this <a href="https://wizardzines.com/comics/track-your-progress/">Julia Evans</a> page, that I serendipitously came across a while ago.</li>
</ul>
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
![Julia Evans comic explaining the importance of tracking progress][jeiln]
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
<h2 id="focus-follow-up-aka-flow-what">Focus Follow Up aka Flow what?</h2>
<ul>
<li>This probably, was the first time, I had a state of flow while programming (I used to have them all the time at work as well lots of times, when I am writing).</li>
<li>This probably means I am comfortable with the level I am at, and I should stretch a bit more.</li>
<li>Did eleven, 30 minute sessions with no aborts. I lost track of time, quite a bit.</li>
<li>Am done with three out of the four modules of this course, I’m on.</li>
<li>After yesterday, today’s progress really feels good.</li>
<li>While I’ll take my wins where I can find them, I should be cognizant of the fact that it was the uncomfortable practice of the week that brought me here.</li>
<li>And so, I want to get more comfortable with feeling uncomfortable.</li>
</ul>
<p>Here’s to finishing strong!</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #8 - Many, Many Relationships</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-8-many-many-relationships/</link>
      <pubDate>Thu, 17 Jun 2021 16:42:17 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-8-many-many-relationships/</guid>
      <description>&lt;p&gt;Another day of doing only Django.&lt;br&gt;
Not that I’m complaining. Finishing up this Django course is my priority.&lt;br&gt;
Followed by PostgreSQL and Data Structures and Algorithms.&lt;br&gt;
I just have to do them step by step, one after another.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;h2 id=&#34;what-i-learnt-in-django-land&#34;&gt;What I learnt in Django land&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I like calling it Django land. Reminds me of Tarantino’s Django and Candyland.&lt;/li&gt;
&lt;li&gt;I learnt all about many to many database relationships and how they’re done with models in Django.&lt;/li&gt;
&lt;li&gt;They’re a logical extension of one to many relationships.&lt;/li&gt;
&lt;li&gt;It’s like one of those who know who games. I know Carol. Carol knows Amelia. And so Carol is my through table, my join table, my junction table. I can request things of Amelia through Carol. That in a nutshell is what it is like.&lt;/li&gt;
&lt;li&gt;I realise that all these complicated terms I feared are actually succinct names for simple, yet long winded processes or things.&lt;/li&gt;
&lt;li&gt;I’m going to practice all this tomorrow morning.&lt;/li&gt;
&lt;li&gt;Heuristic, whenever I see repeated strings vertically, I ought to be thinking databases for efficient storage.&lt;/li&gt;
&lt;li&gt;Heuristic, whenever I see multiple things relating to multiple other things, I ought to be thinking many to many models/relationships (many books to a genre, many genres to a book, an author with multiple books, a book with multiple authors)&lt;/li&gt;
&lt;li&gt;Use integers for primary keys. Integers are &lt;em&gt;fast.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;I now love the folk who designed and built Django. The more I learn about its innards, the more I realise there is no Django magic. Just back breaking hard work and lots of thought put into building this beautiful edifice over the years. Makes me appreciate learning Django, even more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;focus-follow-up-aka-how-did-i-do-with-focus-today&#34;&gt;Focus Follow Up aka How did I do with focus today?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Did seven, 30 minute sessions of Django and one aborted session&lt;/li&gt;
&lt;li&gt;Had a lot of housework today and still managed to wrangle 3 and half hours of deep work.&lt;/li&gt;
&lt;li&gt;Writing notes, seems to be helping. I get my quizzes right the first time around.&lt;/li&gt;
&lt;li&gt;Deliberate practice and focus are not easy, that’s for sure. I keep looking at the clock. And then I keep moaning about how time passes too slowly when I am struggling with stuff.&lt;/li&gt;
&lt;li&gt;Also noticed that whenever I start working on something tough, my mind gets really uncomfortable and wants to do everything else, but focus on the problem and do the work. I want to suddenly call people I haven’t spoken to in ages, check my mail, my messages, peek at the fediverse 😂 I resist. And tell myself, I just have to hold on for 20 more minutes 😂&lt;/li&gt;
&lt;li&gt;I serendipitously came across &lt;a href=&#34;https://twitter.com/CompSciFact/status/1405267698695639041?s=20&#34;&gt;this tweet,&lt;/a&gt; just a few minutes ago, which tells me I am not alone :)
&lt;ul&gt;
&lt;li&gt;Writing code is often a constant struggle against distraction.&lt;br&gt;
— Joy of Clojure&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;This focus is now bleeding into other areas of my life. I am slowing down and doing other stuff, slowly, intentionally.&lt;/li&gt;
&lt;li&gt;My mind feels like it is slowly expanding as if it was in a vise. It feels a bit more relaxed, a bit more freer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://seths.blog/2021/01/born-to-run-things/&#34;&gt;Here’s to showin’ up!&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Another day of doing only Django.<br>
Not that I’m complaining. Finishing up this Django course is my priority.<br>
Followed by PostgreSQL and Data Structures and Algorithms.<br>
I just have to do them step by step, one after another.</p>
<!-- TEASER_END -->
<h2 id="what-i-learnt-in-django-land">What I learnt in Django land</h2>
<ul>
<li>I like calling it Django land. Reminds me of Tarantino’s Django and Candyland.</li>
<li>I learnt all about many to many database relationships and how they’re done with models in Django.</li>
<li>They’re a logical extension of one to many relationships.</li>
<li>It’s like one of those who know who games. I know Carol. Carol knows Amelia. And so Carol is my through table, my join table, my junction table. I can request things of Amelia through Carol. That in a nutshell is what it is like.</li>
<li>I realise that all these complicated terms I feared are actually succinct names for simple, yet long winded processes or things.</li>
<li>I’m going to practice all this tomorrow morning.</li>
<li>Heuristic, whenever I see repeated strings vertically, I ought to be thinking databases for efficient storage.</li>
<li>Heuristic, whenever I see multiple things relating to multiple other things, I ought to be thinking many to many models/relationships (many books to a genre, many genres to a book, an author with multiple books, a book with multiple authors)</li>
<li>Use integers for primary keys. Integers are <em>fast.</em></li>
<li>I now love the folk who designed and built Django. The more I learn about its innards, the more I realise there is no Django magic. Just back breaking hard work and lots of thought put into building this beautiful edifice over the years. Makes me appreciate learning Django, even more.</li>
</ul>
<h2 id="focus-follow-up-aka-how-did-i-do-with-focus-today">Focus Follow Up aka How did I do with focus today?</h2>
<ul>
<li>Did seven, 30 minute sessions of Django and one aborted session</li>
<li>Had a lot of housework today and still managed to wrangle 3 and half hours of deep work.</li>
<li>Writing notes, seems to be helping. I get my quizzes right the first time around.</li>
<li>Deliberate practice and focus are not easy, that’s for sure. I keep looking at the clock. And then I keep moaning about how time passes too slowly when I am struggling with stuff.</li>
<li>Also noticed that whenever I start working on something tough, my mind gets really uncomfortable and wants to do everything else, but focus on the problem and do the work. I want to suddenly call people I haven’t spoken to in ages, check my mail, my messages, peek at the fediverse 😂 I resist. And tell myself, I just have to hold on for 20 more minutes 😂</li>
<li>I serendipitously came across <a href="https://twitter.com/CompSciFact/status/1405267698695639041?s=20">this tweet,</a> just a few minutes ago, which tells me I am not alone :)
<ul>
<li>Writing code is often a constant struggle against distraction.<br>
— Joy of Clojure</li>
</ul>
</li>
<li>This focus is now bleeding into other areas of my life. I am slowing down and doing other stuff, slowly, intentionally.</li>
<li>My mind feels like it is slowly expanding as if it was in a vise. It feels a bit more relaxed, a bit more freer</li>
</ul>
<p><a href="https://seths.blog/2021/01/born-to-run-things/">Here’s to showin’ up!</a></p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #7 - Owning All the Rows</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-7-owning-all-the-rows/</link>
      <pubDate>Wed, 16 Jun 2021 17:59:23 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-7-owning-all-the-rows/</guid>
      <description>&lt;p&gt;Let’s get on with today’s log!&lt;br&gt;
I studied only Django today.&lt;br&gt;
Was plagued with rains and power cuts and family stuff.&lt;br&gt;
Managed to work well and patiently though.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;h2 id=&#34;what-i-learnt-in-django-land&#34;&gt;What I learnt in Django land.&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Owned Rows, that opened my eyes into another dimension to begin with.&lt;/li&gt;
&lt;li&gt;While I knew that Django supports multiple users, it struck home today, that &lt;em&gt;I&lt;/em&gt; was the one to write all the code that supported all those users. All the exercises so far, were just build a view, show some data.&lt;/li&gt;
&lt;li&gt;And now I realise, Oh! I cannot let Tom edit Jerry’s cheese details, nor can Spike get into Tom’s house. I need to be the one that guards against all that. Owned rows are one way I can do this. They will let logged in users edit or delete rows that belong to them only. Not the others.&lt;/li&gt;
&lt;li&gt;I subclassed stuff, which let me drill OOP concepts like inheritance a bit more.&lt;/li&gt;
&lt;li&gt;Finally, I learnt about DRY in action where I let the parent classes do all the heavy lifting, while I wrote a tiny class that let me tweak stuff &lt;em&gt;just&lt;/em&gt; the way I liked it.&lt;/li&gt;
&lt;li&gt;Finally, finally, I learnt the amount of work Django saves me and just how much power is there under the hood.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;focus-follow-up-aka-how-did-i-fare-today-and-how-do-i-feel-now-at-the-end-of-the-day&#34;&gt;Focus Follow Up aka How did I fare today and how do I feel now at the end of the day?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Did eight, 30 minute sessions of learning Django.&lt;/li&gt;
&lt;li&gt;Had three aborted sessions, when I got ridiculously distracted.&lt;/li&gt;
&lt;li&gt;If you want to know, why I abort and start over, &lt;a href=&#34;https://janusworx.com/blog/learning-backend-webdev-log-6-focus-followup/&#34;&gt;I kinda go over this, in this post.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;So worked about the same time (or less) as I did yesterday. I feel like I learnt a bit more, than I did yesterday.&lt;/li&gt;
&lt;li&gt;I’ve begun writing scratch notes as I look at the videos. This makes it more slowgoing, but I internalise stuff a more. I think. I’ll see if this helps.&lt;/li&gt;
&lt;li&gt;Energy wise, this is still sustainable. I feel good still at the end of the day. Not drained and exhausted.&lt;/li&gt;
&lt;li&gt;Also I &lt;em&gt;think&lt;/em&gt; I’m getting the grasp of this. I keep pausing the videos and then trying to predict stuff. I find myself being right, more and more frequently. Today was the first time I yelled at Dr. Chuck for typing in the model name wrong 😂&lt;/li&gt;
&lt;li&gt;I only wish I had begun much, much, much earlier in life, when all these things were beginning and then grown with the Django project. I wish I was not as intimidated about programming being the domain of ‘smart’ people, when I was young. I wish I had more patience, as I traverse what seems like a never ending road of learning with no end in sight, with new things to learn, every half a mile. I wish I could get over this big mountain of basic fundamentals with a snap of my fingers. But I can’t. So I’ll do the next best thing. Show up. And do the work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S. Subscribe to my &lt;a href=&#34;https://janusworx.com/subscribe/&#34;&gt;mailing list!&lt;/a&gt;&lt;br&gt;
Forward these posts and letters to your friends and get them to subscribe!&lt;br&gt;
P.P.S. Feed my &lt;a href=&#34;https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share&#34;&gt;insatiable reading habit.&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Let’s get on with today’s log!<br>
I studied only Django today.<br>
Was plagued with rains and power cuts and family stuff.<br>
Managed to work well and patiently though.</p>
<!-- TEASER_END -->
<h2 id="what-i-learnt-in-django-land">What I learnt in Django land.</h2>
<ul>
<li>Owned Rows, that opened my eyes into another dimension to begin with.</li>
<li>While I knew that Django supports multiple users, it struck home today, that <em>I</em> was the one to write all the code that supported all those users. All the exercises so far, were just build a view, show some data.</li>
<li>And now I realise, Oh! I cannot let Tom edit Jerry’s cheese details, nor can Spike get into Tom’s house. I need to be the one that guards against all that. Owned rows are one way I can do this. They will let logged in users edit or delete rows that belong to them only. Not the others.</li>
<li>I subclassed stuff, which let me drill OOP concepts like inheritance a bit more.</li>
<li>Finally, I learnt about DRY in action where I let the parent classes do all the heavy lifting, while I wrote a tiny class that let me tweak stuff <em>just</em> the way I liked it.</li>
<li>Finally, finally, I learnt the amount of work Django saves me and just how much power is there under the hood.</li>
</ul>
<h2 id="focus-follow-up-aka-how-did-i-fare-today-and-how-do-i-feel-now-at-the-end-of-the-day">Focus Follow Up aka How did I fare today and how do I feel now at the end of the day?</h2>
<ul>
<li>Did eight, 30 minute sessions of learning Django.</li>
<li>Had three aborted sessions, when I got ridiculously distracted.</li>
<li>If you want to know, why I abort and start over, <a href="https://janusworx.com/blog/learning-backend-webdev-log-6-focus-followup/">I kinda go over this, in this post.</a></li>
<li>So worked about the same time (or less) as I did yesterday. I feel like I learnt a bit more, than I did yesterday.</li>
<li>I’ve begun writing scratch notes as I look at the videos. This makes it more slowgoing, but I internalise stuff a more. I think. I’ll see if this helps.</li>
<li>Energy wise, this is still sustainable. I feel good still at the end of the day. Not drained and exhausted.</li>
<li>Also I <em>think</em> I’m getting the grasp of this. I keep pausing the videos and then trying to predict stuff. I find myself being right, more and more frequently. Today was the first time I yelled at Dr. Chuck for typing in the model name wrong 😂</li>
<li>I only wish I had begun much, much, much earlier in life, when all these things were beginning and then grown with the Django project. I wish I was not as intimidated about programming being the domain of ‘smart’ people, when I was young. I wish I had more patience, as I traverse what seems like a never ending road of learning with no end in sight, with new things to learn, every half a mile. I wish I could get over this big mountain of basic fundamentals with a snap of my fingers. But I can’t. So I’ll do the next best thing. Show up. And do the work.</li>
</ul>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #6 - Focus Followup</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-6-focus-followup/</link>
      <pubDate>Tue, 15 Jun 2021 19:18:48 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-6-focus-followup/</guid>
      <description>&lt;p&gt;Today, I did not quite care how much progress I made.&lt;br&gt;
Instead I focussed on getting my focus periods in, like I &lt;a href=&#34;https://janusworx.com/blog/learning-backend-webdev-log-5-figured-out-how-to-focus/&#34;&gt;described yesterday.&lt;/a&gt;&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;It’s about an hour earlier than when I usually call it a day.&lt;br&gt;
And yet, now that I am checking, I have ‘worked’ fewer actual hours than usual.&lt;br&gt;
And I have gotten a bit of exercise and housework done too!&lt;br&gt;
(This does not usually happen on a normal study day)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Today, I did not quite care how much progress I made.<br>
Instead I focussed on getting my focus periods in, like I <a href="https://janusworx.com/blog/learning-backend-webdev-log-5-figured-out-how-to-focus/">described yesterday.</a></p>
<!-- TEASER_END -->
<p>It’s about an hour earlier than when I usually call it a day.<br>
And yet, now that I am checking, I have ‘worked’ fewer actual hours than usual.<br>
And I have gotten a bit of exercise and housework done too!<br>
(This does not usually happen on a normal study day)</p>
<h3 id="what-i-did">What I did</h3>
<ul>
<li>Set a timer for 30 minutes.</li>
<li>Got to work. Butt in seat.</li>
<li>If I got distracted, I’d reset the timer to 30 minutes and start again. The aborted session would not count.</li>
<li>Tried to be patient with myself. Realised that doing things over, was not really a negative, if it meant that in the long run I’d be able to focus better.</li>
</ul>
<h3 id="how-i-fared">How I fared</h3>
<ul>
<li>I did six, 30 minute sessions of Django.</li>
<li>I did three, 30 minute sessions of Postgres.</li>
<li>Don’t think I could have lasted this long, if it was just Django.</li>
<li>Had to scratch and start over six times.</li>
<li>Ended up doing close to 4 and a half hours of focussed <a href="https://www.calnewport.com/books/deep-work/"><em>Deep Work.</em></a></li>
</ul>
<h3 id="what-i-learnt">What I learnt</h3>
<ul>
<li>Learnt about tables in Postgres and did basic commands with a single table</li>
<li>Learnt about forms in Django and how they are built and all the niceties Django provides.</li>
<li>Worked through some exercises in Django, where I built forms and then hooked it up to models using Views.</li>
<li>Then learnt just how much time and effort Django saves me by using generic ClassViews.</li>
<li>Also got into a rhythm of doing stuff, blowing Django up, looking at the error, figuring it out and then going on the next blowup.</li>
</ul>
<h3 id="what-i-feel">What I feel</h3>
<ul>
<li>Did a whole day today, after yesterday’s run</li>
<li>Tired, but not exhausted.</li>
<li>Still feel energetic enough to write this blog post</li>
<li>Actually love this time, when I can sit peacefully and write. All I need now, to complete this setting is a glass of <a href="https://www.business-standard.com/article/beyond-business/the-goan-version-107052601024_1.html">cheap Goan port.</a></li>
<li>I don’t feel rushed.</li>
<li>At four and a half hours, it might feel like I spent less time, but I got much more done than I do in a eight hour day. I realise that the tiny rest periods in between are doing me good. The first few breaks, I kept checking all my feeds. By afternoon, I had settled down to either doing small chores or just enjoying the solitude as I did gentle physical stretches</li>
</ul>
<p>If I can do 30 minute stretches at will this week, I’ll increase them to 45 minutes next week.<br>
Here’s to hoping, this is a sustainable way to focus and learn lots daily.</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #3 - Cross Site Request Forgery</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-3-cross-site-request-forgery/</link>
      <pubDate>Tue, 08 Jun 2021 16:56:11 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-3-cross-site-request-forgery/</guid>
      <description>&lt;p&gt;Wasn’t quite well today, so took it slow.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;h3 id=&#34;the-problem&#34;&gt;The Problem&lt;/h3&gt;
&lt;p&gt;The only thing I managed to learn was what a &lt;a href=&#34;https://en.wikipedia.org/wiki/Cross-site_request_forgery&#34;&gt;Cross Site Request Forgery&lt;/a&gt;(CSRF) is, and how Django helps protect against it.&lt;br&gt;
The Wikipedia page describes it in painstaking detail, and if you want it described a bit more simply, then &lt;a href=&#34;https://www.squarefree.com/securitytips/web-developers.html#CSRF&#34;&gt;Jesse Ruderman&lt;/a&gt; does an admirable job.&lt;br&gt;
&lt;a href=&#34;https://www.youtube.com/watch?v=vRBihr41JTo&#34;&gt;Computerphile does an even better job.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am using this analogy in my head.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Wasn’t quite well today, so took it slow.</p>
<!-- TEASER_END -->
<h3 id="the-problem">The Problem</h3>
<p>The only thing I managed to learn was what a <a href="https://en.wikipedia.org/wiki/Cross-site_request_forgery">Cross Site Request Forgery</a>(CSRF) is, and how Django helps protect against it.<br>
The Wikipedia page describes it in painstaking detail, and if you want it described a bit more simply, then <a href="https://www.squarefree.com/securitytips/web-developers.html#CSRF">Jesse Ruderman</a> does an admirable job.<br>
<a href="https://www.youtube.com/watch?v=vRBihr41JTo">Computerphile does an even better job.</a></p>
<p>I am using this analogy in my head.</p>
<p>I go and stay over at <a href="https://youtu.be/bDdh9IBnnBA">my friend, Jack’s</a> apartment so often, that he leaves the key under the cactus outside the door.<br>
Now this kind of thing is common knowledge. If someone is out on errands, expecting family home, the key is hidden in plain sight. (under the cactus or the doormat or something like that)<br>
So someone else (a thief, not me. I’m family) can always look at these common places and gain entry and rob us blind.<br>
(Not that Jack has anything of value, except for old BoneyM records)</p>
<p>So what is Jack to do? What needs be done?<br>
Jack gets it into his mind to do something … crazy everytime and tell only me about it.<br>
He’ll barricade the door with some sort of strong rope and hide the scissors someplace.<br>
Or he’ll roll the heavy table outside to block the door (and the stairwell) knowing that I know how to unlock the castors and move the godaweful table.<br>
Or he’ll put a facade of a door that looks like a safe, knowing I’ll peel it off later.<br>
(Why can’t he just give me another key instead of making me do all this work? God only knows. He’s a nutcase!)<br>
The point being, he does something different every time to add an additional layer of security.</p>
<p>So a CSRF token is something similar. While your keys and session data might be stored on your computer and might be accessed by something foreign, it is not possible for said foreign entity to steal your CSRF token, because it is short lived and changes frequently (the token that is, not the foreign kook trying to hack their way into your server.)<br>
This keeps malicious sites from doing … um … malicious things on your server.</p>
<h3 id="the-resolution">The Resolution</h3>
<p>Django, like Python, is batteries included.<br>
So its <a href="https://docs.djangoproject.com/en/3.2/topics/http/middleware/">Middleware</a> includes CSRF protection.<br>
In its various forms, to use in various places, it boils down to writing/including something like <code>csrf_token</code></p>
<ul>
<li>If I want to use it in a form, the default method is to just include <code>&lt;form method=&quot;post&quot;&gt;{% csrf_token %}</code> in any template that routes / forwards to another URL internally. (what do I do if I want to post to a URL externally? I don’t know yet. I’ll look stuff up later, if such stuff is even common. In my head, the threat model is for all my routes and urls and models on my server)</li>
<li>If I want to use it in an AJAX post, I have to remember to pass the CSRF token in as POST data with every POST request.</li>
</ul>
<p>And of course, being the awesome folk they are, the Django folk have documented this really well and <a href="https://docs.djangoproject.com/en/3.2/ref/csrf/#how-it-works">you can always see the work behind all the magic.</a></p>
<p>That was it for today. More later!</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #2</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-2/</link>
      <pubDate>Mon, 07 Jun 2021 19:55:43 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-2/</guid>
      <description>&lt;p&gt;I miss writing about what I learn.&lt;br&gt;
So I am going to try and begin again.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;I was too focussed on trying to learn all the stuff as quickly as possible, so I can go job hunt.&lt;br&gt;
But I realise, I need to strike some sort of balance between learning slow enough, so that I can learn and document and enjoy vs going full tilt to finish up the blocks that I need.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I miss writing about what I learn.<br>
So I am going to try and begin again.</p>
<!-- TEASER_END -->  
<p>I was too focussed on trying to learn all the stuff as quickly as possible, so I can go job hunt.<br>
But I realise, I need to strike some sort of balance between learning slow enough, so that I can learn and document and enjoy vs going full tilt to finish up the blocks that I need.</p>
<p>One good thing that I’ve figured out for myself though is that I would love to use Python to do web stuff.<br>
Ergo, I’d like to be a Python backend developer.<br>
To that end, I am learning Python and Django and HTML and CSS and Postgres and I want to learn Flask and FastAPI and some low level network engine like Twisted.<br>
Writing this, I realise there is no end to what I want to learn.<br>
And once again, I need to strike a balance between what I’d want and love to learn vs what is actually needed to land a job that pays the bills, at least to begin with.<br>
I’ve been on a learning rampage the past month, and I have learnt lots, but something niggles me.<br>
My mind hates it when it cannot quite make out the shape of the thing it’s learning.<br>
When I don’t have a mental model of it in my head.</p>
<p>So this post is kind of clearing out my head, to see where I am at.</p>
<ul>
<li>Python, I consider myself a slow writer, but now I understand gosh darn nearly everything I lay my eyes on. I can <em>read</em> Python.<br>
I need to practice writing a lot more to gain fluency. But I am <em>comfortable</em> with the language. Like I mentioned above, I have the shape of Python in my head. I know what it feels like, how to intuit things, and what the entire Python continent looks like and the areas that I’m comfortable with.</li>
<li>HTML &amp; CSS, I’ve learnt enough to be dangerous. Once again, I know what’s involved, and the areas that I need to work on.</li>
<li>JavaScript, is something I need to work on. If I want to become a web developer, then this is a skill I need to have. I’ve learnt the basics. But I need to figure out what this world looks like.</li>
<li>Django, is what I am trying to learn currently and it’s driving me bananas. It has <em>so many</em> moving parts. This feels like learning Python basics all over again. Hopefully the CS50W course that I’m doing will help me gain perspective.</li>
<li>PostgreSQL, is the final piece of what will make me think that I have the basics in place. I’ve just begun learning this today, as a break from Django. I’ll go mad otherwise. Let’s see how this pans out.</li>
</ul>
<p>All the rest can wait.<br>
So anything I learn about any of these things in the days going forward, I’ll write about how it felt and what I understood, over here.</p>
<p>Wish me luck!</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Learning Backend WebDev, Log #1</title>
      <link>https://janusworx.com/work/learning-backend-webdev-log-1/</link>
      <pubDate>Mon, 07 Jun 2021 19:33:46 +0530</pubDate>
      <guid>https://janusworx.com/work/learning-backend-webdev-log-1/</guid>
      <description>&lt;p&gt;test&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>test</p>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 08</title>
      <link>https://janusworx.com/work/jason-learns-django-08/</link>
      <pubDate>Fri, 30 Apr 2021 18:40:00 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-08/</guid>
      <description>&lt;p&gt;And just like that, this little journey ends.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;What did I do/learn today?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Today was all about deployments.&lt;/li&gt;
&lt;li&gt;Learnt how to use gunicorn along with nginx to deploy my website.&lt;/li&gt;
&lt;li&gt;Learnt how to hide my secrets outside my code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://projectbtre.janusworx.com/&#34;&gt;My first Django site is live!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A few reflections.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The project was both harder than I thought it would be, and took less time than I thought it would.&lt;/li&gt;
&lt;li&gt;I know Django now, but I definitely don’t “know” Django.&lt;/li&gt;
&lt;li&gt;This was an excellent introduction to the world of webdevelopment for me and has only whet my taste for more.&lt;/li&gt;
&lt;li&gt;I realised that I need to skill up my HTML / CSS. That is where I turn to next. All the art and the layout were already done for me in this project. I want to do those too.&lt;/li&gt;
&lt;li&gt;I need to do these study projects slower and keep aside sometime for play projects too. This is something I will definitely do next week onwards.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <content:encoded><![CDATA[<p>And just like that, this little journey ends.</p>
<!-- TEASER_END -->  
<p>What did I do/learn today?</p>
<ul>
<li>Today was all about deployments.</li>
<li>Learnt how to use gunicorn along with nginx to deploy my website.</li>
<li>Learnt how to hide my secrets outside my code.</li>
</ul>
<p><a href="https://projectbtre.janusworx.com/">My first Django site is live!</a></p>
<p>A few reflections.</p>
<ul>
<li>The project was both harder than I thought it would be, and took less time than I thought it would.</li>
<li>I know Django now, but I definitely don’t “know” Django.</li>
<li>This was an excellent introduction to the world of webdevelopment for me and has only whet my taste for more.</li>
<li>I realised that I need to skill up my HTML / CSS. That is where I turn to next. All the art and the layout were already done for me in this project. I want to do those too.</li>
<li>I need to do these study projects slower and keep aside sometime for play projects too. This is something I will definitely do next week onwards.</li>
</ul>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 07</title>
      <link>https://janusworx.com/work/jason-learns-django-07/</link>
      <pubDate>Thu, 29 Apr 2021 21:03:43 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-07/</guid>
      <description>&lt;p&gt;Today was a little easier.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;What did I do/learn today?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Today was about doing contacts in the app that we are building. Registering visitors and stuff&lt;/li&gt;
&lt;li&gt;The basic flow was generating another app and doing views and models and wiring them up to pages&lt;/li&gt;
&lt;li&gt;So this felt like revision of all that I’d learnt over the past few days.&lt;/li&gt;
&lt;li&gt;Stuff makes some more sense now.&lt;/li&gt;
&lt;li&gt;I think I will be done in a day or two, but I know I have only scratched the surface of Django.&lt;/li&gt;
&lt;li&gt;I will need to build a lot more projects to gain fluency. That’ll be the plan in the coming weeks and months&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <content:encoded><![CDATA[<p>Today was a little easier.</p>
<!-- TEASER_END -->
<p>What did I do/learn today?</p>
<ul>
<li>Today was about doing contacts in the app that we are building. Registering visitors and stuff</li>
<li>The basic flow was generating another app and doing views and models and wiring them up to pages</li>
<li>So this felt like revision of all that I’d learnt over the past few days.</li>
<li>Stuff makes some more sense now.</li>
<li>I think I will be done in a day or two, but I know I have only scratched the surface of Django.</li>
<li>I will need to build a lot more projects to gain fluency. That’ll be the plan in the coming weeks and months</li>
</ul>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 06</title>
      <link>https://janusworx.com/work/jason-learns-django-06/</link>
      <pubDate>Wed, 28 Apr 2021 21:40:00 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-06/</guid>
      <description>&lt;p&gt;Hard day again.&lt;br&gt;
I just cannot seem to focus and learn.&lt;br&gt;
It takes slogging and rewatching and retyping and oh, I missed a colon there. Do it again.&lt;br&gt;
And again.&lt;br&gt;
And again.&lt;/p&gt;
&lt;p&gt;And that is the only way, I seem to make any progress.&lt;br&gt;
Well, the learning at speed does not quite seem to be in my hands&lt;br&gt;
&lt;em&gt;(or my brain 😂)&lt;/em&gt;&lt;br&gt;
What is in my control, and the best I &lt;em&gt;can&lt;/em&gt; do, is to show up every day.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Hard day again.<br>
I just cannot seem to focus and learn.<br>
It takes slogging and rewatching and retyping and oh, I missed a colon there. Do it again.<br>
And again.<br>
And again.</p>
<p>And that is the only way, I seem to make any progress.<br>
Well, the learning at speed does not quite seem to be in my hands<br>
<em>(or my brain 😂)</em><br>
What is in my control, and the best I <em>can</em> do, is to show up every day.</p>
<!-- TEASER_END -->
<p>What did I do/learn today?</p>
<ul>
<li>I think I’m getting familiar with Django. Today I caught <a href="https://www.udemy.com/course/python-django-dev-to-deployment/">Brad</a> making a mistake. And I went ha! That’s not what the module is called. It’s <code>messages</code>, not <code>message</code>.</li>
<li>Learnt all about creating user accounts for the website that I am creating alongside the course.</li>
<li>Learnt how to wire stuff up to the login, logout and register pages.</li>
<li>Learnt how to flash messages using Javascript &amp; Bootstrap.</li>
<li>Created Dynamic Titles for all the various pages of my website; i.e. instead of it just pulling in the name from a base html file, I can now type in a title for every page, or create one from the various variables on the page.</li>
<li>Realising that Django is both not as large as I feared (the big picture is tractable) and much larger than I feared. (I don’t quite know how long I will take to master it.)</li>
</ul>
<p>Until next time then …</p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 05</title>
      <link>https://janusworx.com/work/jason-learns-django-05/</link>
      <pubDate>Tue, 27 Apr 2021 20:30:00 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-05/</guid>
      <description>&lt;p&gt;Life got in the way again.&lt;br&gt;
Remembered &lt;a href=&#34;https://janusworx.com/blog/jason-learns-django-04/&#34;&gt;yesterday&lt;/a&gt;.&lt;br&gt;
So I took it easy.&lt;br&gt;
Gave myself 4 hours and the grace to quit if I wasn’t done.&lt;br&gt;
And somehow, by the skin of my teeth, I got done with the pending module.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;What did I do/learn today?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I seemed to have taken a break at a natural place in the module. If yesterday was about wiring views, today was about doing search.&lt;/li&gt;
&lt;li&gt;Wrote lots of Django template code. Loops and variables and pulling data from dictionaries.&lt;/li&gt;
&lt;li&gt;Amazing to see reams of code in an HTML template just vanish, to be replaced by a few lines of code, that loops over data pulled from a database.&lt;/li&gt;
&lt;li&gt;Wrote lots of search functions for different parts of the site.&lt;/li&gt;
&lt;li&gt;Love the fact that I understand most of the Python I write. Am confused a lot about whether the stuff I use is Python powered or something Django gives me, but am not stressing over it. This I am sure will come with time&lt;/li&gt;
&lt;li&gt;Today was another slog day, but it was so much fun, watching various parts of the website come to life.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <content:encoded><![CDATA[<p>Life got in the way again.<br>
Remembered <a href="https://janusworx.com/blog/jason-learns-django-04/">yesterday</a>.<br>
So I took it easy.<br>
Gave myself 4 hours and the grace to quit if I wasn’t done.<br>
And somehow, by the skin of my teeth, I got done with the pending module.</p>
<!-- TEASER_END -->  
<p>What did I do/learn today?</p>
<ul>
<li>I seemed to have taken a break at a natural place in the module. If yesterday was about wiring views, today was about doing search.</li>
<li>Wrote lots of Django template code. Loops and variables and pulling data from dictionaries.</li>
<li>Amazing to see reams of code in an HTML template just vanish, to be replaced by a few lines of code, that loops over data pulled from a database.</li>
<li>Wrote lots of search functions for different parts of the site.</li>
<li>Love the fact that I understand most of the Python I write. Am confused a lot about whether the stuff I use is Python powered or something Django gives me, but am not stressing over it. This I am sure will come with time</li>
<li>Today was another slog day, but it was so much fun, watching various parts of the website come to life.</li>
</ul>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 04</title>
      <link>https://janusworx.com/work/jason-learns-django-04/</link>
      <pubDate>Mon, 26 Apr 2021 20:00:00 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-04/</guid>
      <description>&lt;p&gt;I thought &lt;a href=&#34;https://janusworx.com/blog/jason-learns-django-03/&#34;&gt;last friday&lt;/a&gt; was hard.&lt;br&gt;
Boy, was I wrong.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;I had scheduled about four hours to do one of &lt;a href=&#34;https://www.udemy.com/course/python-django-dev-to-deployment/&#34;&gt;Brad’s&lt;/a&gt; modules everyday.&lt;br&gt;
And today was such a bear.&lt;br&gt;
Life happened.&lt;br&gt;
There were lots of interruptions.&lt;br&gt;
I tried to soldier on nonetheless.&lt;br&gt;
Eight hours in, and I am still only halfway through the module.&lt;br&gt;
That’s when I decided to give myself some grace and let it go.&lt;br&gt;
Note to self, stick to the time. Not the module. If the module does not get over, there is always tomorrow.&lt;br&gt;
&lt;em&gt;(saying this, as I look at the pile of stuff, I’ve left undone today.)&lt;/em&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I thought <a href="https://janusworx.com/blog/jason-learns-django-03/">last friday</a> was hard.<br>
Boy, was I wrong.</p>
<!-- TEASER_END -->  
<p>I had scheduled about four hours to do one of <a href="https://www.udemy.com/course/python-django-dev-to-deployment/">Brad’s</a> modules everyday.<br>
And today was such a bear.<br>
Life happened.<br>
There were lots of interruptions.<br>
I tried to soldier on nonetheless.<br>
Eight hours in, and I am still only halfway through the module.<br>
That’s when I decided to give myself some grace and let it go.<br>
Note to self, stick to the time. Not the module. If the module does not get over, there is always tomorrow.<br>
<em>(saying this, as I look at the pile of stuff, I’ve left undone today.)</em></p>
<p>What did I do/learn today?</p>
<ul>
<li>Learnt the basics of view methods today</li>
<li>Am kinda getting the hang of how stuff passes through Django from me typing stuff in the url bar, to stuff being displayed on screen.</li>
<li>Learnt about humanize module that’ll “humanize” dates and times and figures, so that they make sense to humans.</li>
<li>Getting better at passing stuff in a view to the template.</li>
<li>Learning how to collect everything I want in a dictionary, and then passing it wholesale to the template, so I can work magic there, using those data.</li>
<li>Learnt about the Paginator module, that helps me, well, paginate stuff.</li>
</ul>
<p>Hope to finish this module tomorrow</p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 03</title>
      <link>https://janusworx.com/work/jason-learns-django-03/</link>
      <pubDate>Sat, 24 Apr 2021 20:30:57 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-03/</guid>
      <description>&lt;p&gt;Today was a slog.&lt;br&gt;
Life got in the way, so lost some scheduled time. &lt;br&gt;
So decided to work some more in the evening.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;What did I do/learn today?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learnt the basics of models, and migrations today.&lt;/li&gt;
&lt;li&gt;Learnt how to install PostgreSQL, so that I could simualate a production environment.
&lt;ul&gt;
&lt;li&gt;This took eons, all because, I did not realise that I (or some other program I installed) had already installed Postgres in the past, and so I went down a rabbit hole of looking at logs and figuring out ports and why I could not talk to the database &lt;em&gt;I&lt;/em&gt; wanted.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Am slowly realising that I what working with Django actually is, is to take things that Django provides and then customise them to my needs. And Django provides &lt;em&gt;a lot.&lt;/em&gt; Python is just the way I express what I want.&lt;/li&gt;
&lt;li&gt;Learnt how to write a model file and then use migrations to actually go alakazaam and make them real in my database.&lt;/li&gt;
&lt;li&gt;Learnt how to rejig the default admin panel, that comes with Django
&lt;ul&gt;
&lt;li&gt;While the stock admin site is pretty function &lt;a href=&#34;https://www.udemy.com/course/python-django-dev-to-deployment/&#34;&gt;Brad&lt;/a&gt; walked me through customising it to add brand colours and adding / changing functionality. For e.g. adding in a search field, so I could search by names.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I should be reading Django documentation and then playing with all the features.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Time to call it a day.&lt;br&gt;
More on Monday.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Today was a slog.<br>
Life got in the way, so lost some scheduled time. <br>
So decided to work some more in the evening.</p>
<!-- TEASER_END -->  
<p>What did I do/learn today?</p>
<ul>
<li>Learnt the basics of models, and migrations today.</li>
<li>Learnt how to install PostgreSQL, so that I could simualate a production environment.
<ul>
<li>This took eons, all because, I did not realise that I (or some other program I installed) had already installed Postgres in the past, and so I went down a rabbit hole of looking at logs and figuring out ports and why I could not talk to the database <em>I</em> wanted.</li>
</ul>
</li>
<li>Am slowly realising that I what working with Django actually is, is to take things that Django provides and then customise them to my needs. And Django provides <em>a lot.</em> Python is just the way I express what I want.</li>
<li>Learnt how to write a model file and then use migrations to actually go alakazaam and make them real in my database.</li>
<li>Learnt how to rejig the default admin panel, that comes with Django
<ul>
<li>While the stock admin site is pretty function <a href="https://www.udemy.com/course/python-django-dev-to-deployment/">Brad</a> walked me through customising it to add brand colours and adding / changing functionality. For e.g. adding in a search field, so I could search by names.</li>
</ul>
</li>
<li>I should be reading Django documentation and then playing with all the features.</li>
</ul>
<p>Time to call it a day.<br>
More on Monday.</p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django - 02</title>
      <link>https://janusworx.com/work/jason-learns-django-02/</link>
      <pubDate>Fri, 23 Apr 2021 13:06:43 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django-02/</guid>
      <description>&lt;p&gt;Today was a really good day.&lt;br&gt;
Did four productive hours of work.&lt;br&gt;
Managed to focus, and follow the lessons and write my own code.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;What did I do/learn today?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I need to write a &lt;em&gt;lot&lt;/em&gt; more code.&lt;/li&gt;
&lt;li&gt;I need to write lots of HTML/Javascript, to gain a better understanding. I thought I could get by with basic stuff, but the more I learn Django, the more I see that it works hand in hand with the content and styling that I have written. (Right now there is a set of templates for the course, but I can see myself taking much longer, if this was not there.)&lt;/li&gt;
&lt;li&gt;The MVT flow is now gradually making more sense to me. What stuff belongs to a model? Or a view? I would listen to the instructor, &lt;a href=&#34;https://www.udemy.com/course/python-django-dev-to-deployment/&#34;&gt;(Brad)&lt;/a&gt;, then pause the video and then try to do it myself first. Or at least think through the process and mentally prep an answer. And then go see what he did, and how he did it.&lt;/li&gt;
&lt;li&gt;Worked with Apps and URLs and Templates and learnt to write code across these files, wiring one up to the other, so that the page would render.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <content:encoded><![CDATA[<p>Today was a really good day.<br>
Did four productive hours of work.<br>
Managed to focus, and follow the lessons and write my own code.</p>
<!-- TEASER_END -->  
<p>What did I do/learn today?</p>
<ul>
<li>I need to write a <em>lot</em> more code.</li>
<li>I need to write lots of HTML/Javascript, to gain a better understanding. I thought I could get by with basic stuff, but the more I learn Django, the more I see that it works hand in hand with the content and styling that I have written. (Right now there is a set of templates for the course, but I can see myself taking much longer, if this was not there.)</li>
<li>The MVT flow is now gradually making more sense to me. What stuff belongs to a model? Or a view? I would listen to the instructor, <a href="https://www.udemy.com/course/python-django-dev-to-deployment/">(Brad)</a>, then pause the video and then try to do it myself first. Or at least think through the process and mentally prep an answer. And then go see what he did, and how he did it.</li>
<li>Worked with Apps and URLs and Templates and learnt to write code across these files, wiring one up to the other, so that the page would render.</li>
</ul>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Jason Learns Django</title>
      <link>https://janusworx.com/work/jason-learns-django/</link>
      <pubDate>Thu, 22 Apr 2021 13:52:06 +0530</pubDate>
      <guid>https://janusworx.com/work/jason-learns-django/</guid>
      <description>&lt;p&gt;Meta post.&lt;br&gt;
More than Django itself, I am beginning the phase of my journey, where now I &lt;em&gt;write&lt;/em&gt; code and install programs and do all the things.&lt;br&gt;
Am committing 2 hours to this daily, on weekdays along with a tiny what did I learn post.&lt;/p&gt;
&lt;p&gt;I am beginning with Django itself, and if I have difficulties with any underlying concepts, I will quickly dive down and write code to understand those.&lt;br&gt;
Learning along with Brad Traversy’s &lt;a href=&#34;https://www.udemy.com/course/python-django-dev-to-deployment/&#34;&gt;Python Django Dev To Deployment&lt;/a&gt;.&lt;br&gt;
It’s a bit old, but I like the way he teaches.&lt;br&gt;
And to make sure I am not cargo culting, I am doing this with Django 3 (the course has Django 2)&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Meta post.<br>
More than Django itself, I am beginning the phase of my journey, where now I <em>write</em> code and install programs and do all the things.<br>
Am committing 2 hours to this daily, on weekdays along with a tiny what did I learn post.</p>
<p>I am beginning with Django itself, and if I have difficulties with any underlying concepts, I will quickly dive down and write code to understand those.<br>
Learning along with Brad Traversy’s <a href="https://www.udemy.com/course/python-django-dev-to-deployment/">Python Django Dev To Deployment</a>.<br>
It’s a bit old, but I like the way he teaches.<br>
And to make sure I am not cargo culting, I am doing this with Django 3 (the course has Django 2)</p>
<p>What did I do/learn today?</p>
<ul>
<li>Set up a timetable of when I’ll go about doing things.</li>
<li>Bought the course.</li>
<li>Installed Django and got it to work.</li>
</ul>
<p>And that’s about it.<br>
Looking back at it, I wonder why this took me three long hours, but it is what it is.<br>
I’d rather show up daily and make progress.</p>
<hr>
]]></content:encoded>
    </item>
    <item>
      <title>Starting up #CNC2021.</title>
      <link>https://janusworx.com/personal/starting-up-cnc2021/</link>
      <pubDate>Tue, 20 Apr 2021 19:06:06 +0530</pubDate>
      <guid>https://janusworx.com/personal/starting-up-cnc2021/</guid>
      <description>&lt;p&gt;Enough learning.&lt;br&gt;
I now have to drill what I’ve learnt over the past few weeks and months by writing lots of code.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;Been noodling around with what that might look like in my head.
Here’s what I got.&lt;br&gt;
After tentatively coding up stuff in a couple of domains and after a short chat with a friend, I realise I love writing code for the web.&lt;br&gt;
I love reading.&lt;br&gt;
I love to write on my blog.&lt;br&gt;
I love that with just a few keypresses, my words can be read by anyone on the web, no gatekeeper required.&lt;br&gt;
I would love to write code to enable this for more people.&lt;br&gt;
I would love to play and tinker and push at the boundaries of this domain.
This intersection of all this is web development.&lt;br&gt;
Ergo, I want to become a web developer.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Enough learning.<br>
I now have to drill what I’ve learnt over the past few weeks and months by writing lots of code.</p>
<!-- TEASER_END -->
<p>Been noodling around with what that might look like in my head.
Here’s what I got.<br>
After tentatively coding up stuff in a couple of domains and after a short chat with a friend, I realise I love writing code for the web.<br>
I love reading.<br>
I love to write on my blog.<br>
I love that with just a few keypresses, my words can be read by anyone on the web, no gatekeeper required.<br>
I would love to write code to enable this for more people.<br>
I would love to play and tinker and push at the boundaries of this domain.
This intersection of all this is web development.<br>
Ergo, I want to become a web developer.</p>
<p>So while I have learnt and watched and written a bit of code and understand how programming works, what I need now, if I want this to be my second career, is fluency and a portfolio.</p>
<p>To that end,</p>
<ul>
<li>I need to do all sorts of basic exercises in the languages I am learning (Python/HTML/CSS/JavaScript)</li>
<li>I need to find and contribute to open source projects, to get a feel of how it is to work with folks and to understand how this whole world functions</li>
<li>I need to write toy projects for myself.</li>
</ul>
<p>Learning by my ownsome was a tremendously hard, extremely lonely task.<br>
I don’t want to repeat that mistake again.<br>
So, to start with the “doing”, I’ve signed up at Code Newbie for their <a href="https://community.codenewbie.org/codenewbie/announcing-cnc2021-codenewbie-challenge-2021-1jbh">#CNC2021</a> challenge.<br>
Lasts 5 weeks, and I’m already a couple of days behind, but never mind that.<br>
I also stretched a bit and signed up for the Code More challenge.</p>
<p>As to what’s involved, I have no clue, yet.<br>
Will wait up for their emails and then do the work and write all about it here.</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>I Can’t Do This Yet … Updated</title>
      <link>https://janusworx.com/personal/i-cant-do-this-yet-updated/</link>
      <pubDate>Sat, 17 Apr 2021 14:33:15 +0530</pubDate>
      <guid>https://janusworx.com/personal/i-cant-do-this-yet-updated/</guid>
      <description>&lt;p&gt;Updated version of the post. I seem to have somehow, mangled the old one.&lt;br&gt;
I’ll just blame it on the gremlins in the cloud.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;I’ve been “soft” looking for a job, since the end of last year when I learnt the basics of Python.&lt;br&gt;
&lt;small&gt;&lt;em&gt;(Want me to come work with you as a junior developer? Here’s &lt;a href=&#34;https://janusworx.com/files/mjb-resume-i.pdf&#34;&gt;my resume!&lt;/a&gt;)&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;And I’ve had rejection after rejection after rejection.&lt;br&gt;
I apparently am good.&lt;br&gt;
I have skills.&lt;br&gt;
I could be an asset for companies.&lt;br&gt;
But I am not “quite” what folks are looking for, not quite right for them.&lt;br&gt;
I am not quite what it is, folks are looking for, to take chance on.&lt;br&gt;
I am a square peg …&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Updated version of the post. I seem to have somehow, mangled the old one.<br>
I’ll just blame it on the gremlins in the cloud.</p>
<!-- TEASER_END -->  
<p>I’ve been “soft” looking for a job, since the end of last year when I learnt the basics of Python.<br>
<small><em>(Want me to come work with you as a junior developer? Here’s <a href="https://janusworx.com/files/mjb-resume-i.pdf">my resume!</a>)</em></small></p>
<p>And I’ve had rejection after rejection after rejection.<br>
I apparently am good.<br>
I have skills.<br>
I could be an asset for companies.<br>
But I am not “quite” what folks are looking for, not quite right for them.<br>
I am not quite what it is, folks are looking for, to take chance on.<br>
I am a square peg …</p>
<p>And while I understand this in my head, my heart does not get it at times.<br>
And that’s when <a href="https://seths.blog/2021/02/a-simple-missing-word/">Seth</a>, as usual comes to the rescue.<br>
With a word, that I am increasingly using to mentally toughen myself and give me courage.</p>
<p><em><strong>Yet …</strong></em></p>
<p>From <a href="https://seths.blog/2017/06/a-professional-stumbler/">A Professional Stumbler</a> …</p>
<blockquote>
<p>Leo&rsquo;s working hard to do something he&rsquo;s never done before. He&rsquo;s just turned one, and he doesn&rsquo;t know how to walk <em><strong>(yet).</strong></em></p>
</blockquote>
<blockquote>
<p>There are no really useful books or videos on how to walk. It&rsquo;s something he has to figure out on his own. But instead of waiting on the couch until the day he&rsquo;s ready to proudly strut across the room, he&rsquo;s there, on the floor, every day, trying it out.</p>
<p>He&rsquo;s already discovered a hundred ways that don&rsquo;t work, and stumbled countless times.</p>
<p>But he persists.</p>
<p>I don&rsquo;t know about you, but this is precisely the way I learned how to walk as well.</p>
<p>In fact, it&rsquo;s the way I learned how to do just about everything important. By doing it.</p>
</blockquote>
<p>From <a href="https://seths.blog/2021/02/a-simple-missing-word/">A Simple Missing Word</a> …</p>
<blockquote>
<p><em><strong>“Yet”.</strong></em></p>
<p>You can append it after any sentence related to your journey of achievement and contribution.</p>
<p>“I haven’t finished the project”<br>
“I haven’t learned how to juggle”<br>
“I haven’t made the sale”</p>
<p><em><strong>YET.</strong></em></p>
<p>And along the way, “Yet” turns “can’t” into “haven’t.”</p>
<p>Yet isn’t the result of brazen persistence. It’s what we earn with learning, insight and generosity.</p>
</blockquote>
<p>From <a href="https://seths.blog/2020/02/so-far-not-yet/">So Far / Not Yet</a> …</p>
<blockquote>
<p>What to do in the face of failure? What happens when you’ve done your best and it still doesn’t get the review, close the sale or win the race?</p>
</blockquote>
<blockquote>
<p>… The growth mindset, is to realize that while you did your best, it’s not your best forever, it’s just what you’ve done so far. And that while you haven’t created what you set out to create, the key word, the one you have to remind yourself of daily, is <em><strong>yet.</strong></em></p>
</blockquote>
<p>From <a href="https://seths.blog/2015/07/you-have-no-credibility-yet/">You Have No Credibility (yet)</a></p>
<blockquote>
<p>Your belief, even your proof, is insufficient for you to get the attention, the trust and the action you seek. <br>
Attention is not yours to take whenever you need it. And trust is not something you can insist on.<br>
The bad news is that you are not entitled to attention and trust. It is not allocated on the basis of some sort of clearly defined scale of worthiness.<br>
The good news is that you can earn it. You can invest in the community, you can patiently lead and contribute and demonstrate that the attention you are asking be spent on you is worthwhile.</p>
</blockquote>
<p>So yes, I might not be up to par, might not match up to what they look for, might not be skilled enough … <em><strong>yet.</strong></em><br>
I’ll get there, soon enough!</p>
<p><a href="https://seths.blog/2021/04/youre-not-that-good/"><h2 id="update">“You’re not that good”</h2></a></p>
<p>And of course, Seth has to read my little blog and riff off my post :P<br>
I kid. He doesn’t even know I exist. But talk about happy serendipity!<br>
You’re not that good, spells my journey up above in beautiful detail.</p>
<blockquote>
<p>The first is that when we begin, we’re not that good. This is a fact. The breakthrough for anyone on this journey is adding the word **<em>“yet.”</em>
**</p>
<p>It doesn’t pay to pretend that we’ve figured it out before we have. It’s counterproductive to adopt a brittle attitude in the face of criticism. In fact, during this stage, “you’re not that good,” is precisely what we need to hear, because it might be followed with insight on how to get better.</p>
<p>The second is that once we start to build skills and offer something of value, some people are going to persist in believing that we’re not that good. Fine. They’ve told us something about themselves and what they want and need. This is a clue to offer our leadership and contribution to someone else, someone who gets what we’re doing and wants it. The smallest viable audience isn’t a compromise, it’s a path forward. Find the folks who are enrolled and open and eager. Serve them instead.<br>
The danger is that when you hear rejection during this stage, you might come to believe that you’ve accomplished nothing, as opposed to realizing that you might simply be talking to the wrong people.</p>
<p>And the third comes full circle. Because it’s possible that in fact, we’re not that good yet, and there aren’t enough people who want what we’ve got. We’re simply not good enough for this part of the market. So we embrace that truth and begin at the beginning. We’re not good enough yet. We haven’t practiced enough, found enough empathy, understood the genre well enough and figured out how to contribute. Yet. At least for this audience.</p>
<p><em><strong>And then we get better.</strong></em></p>
</blockquote>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>A Love Letter to Books</title>
      <link>https://janusworx.com/personal/a-love-letter-to-books/</link>
      <pubDate>Thu, 08 Apr 2021 18:38:32 +0530</pubDate>
      <guid>https://janusworx.com/personal/a-love-letter-to-books/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Despite financial troubles there’s a sense in which my childhood was immensely privileged — a pauper in the material world, I was a sultan in the world of ideas.&lt;/p&gt;
&lt;p&gt;— &lt;a href=&#34;https://lithub.com/the-joy-and-privilege-of-growing-up-in-an-indie-bookstore/&#34;&gt;Erik Hoel&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I started by wanting to share that quote and link on my microblog and then my thoughts turned into a blog post sized comment.&lt;br&gt;
I decided to post it here too, then.&lt;/p&gt;
&lt;hr style=&#34;margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;&#34; /&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;&lt;img alt=&#34;Bookshelf&#34; loading=&#34;lazy&#34; src=&#34;https://janusworx.com/images/2021/bookshelf.jpeg&#34;&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<blockquote>
<p>Despite financial troubles there’s a sense in which my childhood was immensely privileged — a pauper in the material world, I was a sultan in the world of ideas.</p>
<p>— <a href="https://lithub.com/the-joy-and-privilege-of-growing-up-in-an-indie-bookstore/">Erik Hoel</a></p>
</blockquote>
<p>I started by wanting to share that quote and link on my microblog and then my thoughts turned into a blog post sized comment.<br>
I decided to post it here too, then.</p>
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
<!-- TEASER_END -->
<p><img alt="Bookshelf" loading="lazy" src="/images/2021/bookshelf.jpeg"></p>
<hr style="margin-left: auto; margin-right: auto;margin-bottom: 40px; margin-top: 40px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238);  height: 1px;" />
<p>That quote describes my life to a T, even now.</p>
<p>I might be financially down in the dumps, but when it comes to books, my friends and kinfolk, have always somehow found a way to keep me happy and occupied.</p>
<p>The school librarian knew I used the library for what it actually was, a repository of magic and wisdom, and not what most folks used it for, a sick bay.<br>
Which meant at least once a month, I would tell my teachers I was sick, go to the library and read books for an hour and after a year, the librarian would turn a blind eye to my presence too.<br>
I was lost in Verne and Poe and Dickens.</p>
<p>The roadside vendor at the railway station, who I would buy books second hand from, would always keep the keep the newest ones for me.<br>
If I couldn’t pay, he’d lend them to me on the condition, that I return it in day or two<br>
This is where I got to read epic fiction. Tolkien’s worlds and McCullough’s Rome, all entranced me.</p>
<p>As a young hardware engineer making calls all over the city, I got to know the nooks and crannies of Bombay and more importantly I learnt where I could find the books that I wanted to read.<br>
The Strand, and the roadside vendors at Fountain and Matunga and other nooks and cranies across the expanse of my tiny (in area) city became intimate friends.<br>
Crazy animé, Golden age Marvel, “Banned” books, Old scifi and fantasy authors like Asimov and Niven/Pournelle and and newfangled ones like Gaiman and GRRM and the ones who would merge story telling and philosophy like PKD or Anthony DeMello and Carroll.</p>
<p>Friends, family, bosses, coworkers have all been indulgent too.<br>
I own the Ultimate Sandman, and the Complete Calvin and Hobbes, and the Complete Asterix, and a Niven novel that Asimov signed, and lots of Gibran, and lots of Anthony DeMello, and lots and lots and lots of hardbacks thanks to their generosity.</p>
<p>In a life, that has been constantly buffeted by storms, books have been my solace.</p>
<p>I may not not have graduated college, but books have been my education.<br>
Books have gotten me over breakups.<br>
Books have taught me how to save money and make it grow.<br>
Books have made me a better human by passing on the wisdom of the ancients to me.<br>
Books made me healthier by teaching me how to lose weight sustainably.<br>
Books gave me a leg up in life.<br>
Books are helping me reinvent my work life as I change careers to programming.</p>
<p>Books give me a leg up in life.<br>
With books I have been truly privileged and truly blessed!</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Thoughts on Setting Up a Blog</title>
      <link>https://janusworx.com/personal/thoughts-on-setting-up-a-blog/</link>
      <pubDate>Fri, 26 Mar 2021 05:45:00 +0530</pubDate>
      <guid>https://janusworx.com/personal/thoughts-on-setting-up-a-blog/</guid>
      <description>&lt;p&gt;&lt;small&gt;&lt;em&gt;This post was first sent to my newsletter on March 19th, 2021.&lt;br&gt;
&lt;a href=&#34;https://janusworx.com/subscribe/&#34;&gt;You really ought to subscribe&lt;/a&gt; :)&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;I blame Mahe for this post.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Hey, Jason!&lt;br&gt;
Can you please write an article on how to build a website like yours, where I can post my blogs?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Check out her blogs, &lt;a href=&#34;https://maheiram.medium.com/&#34;&gt;here&lt;/a&gt; and &lt;a href=&#34;https://renderingsofmyheart.wordpress.com/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;  
&lt;p&gt;This one is squarely aimed at all the young ones, who are convinced that they need to be writing.&lt;br&gt;
&lt;a href=&#34;https://summertraining.readthedocs.io/en/latest/blogging.html&#34;&gt;&lt;em&gt;(Maybe, it was me who convinced you, in the first place.)&lt;/em&gt;&lt;/a&gt;&lt;br&gt;
You are young (or like me, forever young) and broke (also like me).&lt;br&gt;
You need a place for your thoughts to call home.&lt;br&gt;
You need a place to &lt;em&gt;write&lt;/em&gt;, and grow and focus more on what you want to say about life and what you study or what you work at, or the portfolio/showcase of thoughts you will slowly build.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><small><em>This post was first sent to my newsletter on March 19th, 2021.<br>
<a href="/subscribe/">You really ought to subscribe</a> :)</em></small></p>
<p>I blame Mahe for this post.</p>
<blockquote>
<p><em>Hey, Jason!<br>
Can you please write an article on how to build a website like yours, where I can post my blogs?</em></p>
</blockquote>
<p>Check out her blogs, <a href="https://maheiram.medium.com/">here</a> and <a href="https://renderingsofmyheart.wordpress.com/">here</a>.</p>
<!-- TEASER_END -->  
<p>This one is squarely aimed at all the young ones, who are convinced that they need to be writing.<br>
<a href="https://summertraining.readthedocs.io/en/latest/blogging.html"><em>(Maybe, it was me who convinced you, in the first place.)</em></a><br>
You are young (or like me, forever young) and broke (also like me).<br>
You need a place for your thoughts to call home.<br>
You need a place to <em>write</em>, and grow and focus more on what you want to say about life and what you study or what you work at, or the portfolio/showcase of thoughts you will slowly build.</p>
<p><em><strong>What you use to write, does not matter at this stage!</strong></em></p>
<p>So, what now?</p>
<h2 id='intent'><a href='#intent'>Intent (aka, what do you want out of your blog?)</a></h2>  
I have learnt the hard way, that the only way I can write better posts, is by writing [*lots* of crappy ones][crap].  
I started a static website in the early oughts, then had a blogger blog, then a tumblr blog, then a self hosted wordpress blog, and then a self hosted ghost blog and now this self hosted [nikola blog][nb].  
I sweated over the spacing.  
I fretted over which blog engine was best and most performant.  
I wondered about which ones protected privacy best.  
I had flame wars over which language was the best one to create a blog in, what sites were the best hosts, what frameworks would work better and how static blogs were so much faster than dynamic blogs but dynamic blogs offered so much power and flexibility. (all while I did not know how to write a single line of code.)  
I designed my blogs the way I wanted them, I bought premium themes, I bought fancy text editors and then figured out how I would write and where I would share them. I was all set.  
<p>And then? … zip, nada, nothing.<br>
The blogs just languished.</p>
<p>This current incarnation of the blog is the only one that I have stuck with and written <a href="https://janusworx.com/archive.html">lots</a> on.<br>
Every one of those previous attempts just withered on the vine.<br>
And not for lack of good intentions.<br>
I was always going to write that perfect post.<br>
I was waiting for more data, so that the post would be complete.<br>
I was researching for depth, because this subject was not just a post. It was a whole series.<br>
I never got around to actually writing though.<br>
It was lack of focus. <a href="https://janusworx.com/blog/on-intention/">Lack of intent</a>.<br>
Think about why you are starting the blog and what do you want on there?<br>
And that will give you direction about what to write.<br>
You might realise that you don’t want to write, and just play with technology.<br>
That is fair too. At least you’re being intentional about it.</p>
<h2 id='write'><a href='#write'>Begin Writing!</a></h2>
If you have never written before, my advice to you is  
<ul>
<li>to do precisely 1 hour of research, into all the free, hosted blog engines that are out there. Off the top of my head, <a href="https://write.as/start">Write.as</a>, <a href="https://www.netlify.com/">Netlify</a>, <a href="https://www.tumblr.com/register">Tumblr</a>, <a href="https://wordpress.com/start/">Wordpress</a>, and <a href="https://medium.com/m/signin">Medium</a> come to mind.</li>
<li>make dummy blogs and explore all their features over the next day or two (at most). Figure out what interface you are most comfortable with.</li>
<li><em><strong>Begin Writing.</strong></em></li>
</ul>
<p>I cannot stress this enough.<br>
You will never write perfect posts.<br>
How do I know?<br>
Because I tried so hard, for so many years.<br>
And failed.</p>
<p>What you can do, is show up on the first day.<br>
Publicly commit to writing everyday.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><br>
And write.<br>
Everyday.<br>
Good.<br>
Bad.<br>
Ugly.<br>
Whatever.<br>
Just put words on the page.</p>
<p>The only two things that’d probably matter are,</p>
<ol>
<li>That you show up on the time you committed to</li>
<li>And if your blog needs a general direction in the long run, you kinda sorta write your posts in that general direction.</li>
</ol>
<p>Even that is a pretty distant second though.<br>
First, master showing up daily.<br>
Build that discipline.</p>
<h2 id='tools'><a href='#tools'>Tools of the trade</a></h2>  
Caveat, don’t even *think* about reading this section, if you have not written close to a hundred posts on a regular schedule first.  
You need that muscle built strong.  
The rest as they say, is window dressing.  
Once you have written a couple of hundred posts, you get a pretty good handle on what it is that you are writing and what it is, that the blog needs to do to serve that purpose.  
I can tell you why I did, what I did with my blog.  
It might help you build yours? I don’t really know.  
But honestly, once you get on with writing, you will figure out most of this stuff or know someone who does, or understand that maintaining the status quo is good enough, until you can afford to pay for a hosted vendor, who does this all for you.  
<p>I used Wordpress for a long time and loved it.<br>
Then I thought I wanted to control it all, and so I hosted Wordpress on my own site.<br>
Then I actually understood, what a headache maintaining it all really is.<br>
Then I looked for something simpler.<br>
I backed the <a href="https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform">Ghost kickstarter</a> and as soon as they released it, I began using it.<br>
It served my needs really well, until they decided to go in a different direction and abandon what I loved most about it. Writing in markdown. (I had written enough, to realise that any blog engine that I would use, needed to support Markdown.)</p>
<p>And by then, like I said, I had written enough to know what I wanted out of a blog.<br>
I was writing for myself, so I did not want comments.<br>
That eliminating comments also got rid of moderating people and spam was just a bonus.<br>
If I wanted, I could actually go spread my message seperately. (the fediverse, email newsletters, social media networks and all that jazz.) But that is an intentional step. Separate from my act of writing.<br>
I mostly wrote words. So I needed something that would have pretty text.<br>
And since it was mostly just text, I could get by with a bunch of Markdown files rendered into static html files.<br>
I did not want to upgrade and patch and maintain a blog engine some place.<br>
I wanted something I could either host on my own server or just on some site somewhere else.<br>
This would be easier once again if it was just a bunch of files that needed to be placed somewhere.<br>
I wanted the ability to write from anywhere.<br>
And finally I wanted a measure of control over where all this was.</p>
<p>All these considerations led me to realise …<br>
A static blog, with a pretty looking theme would address both my bunch of files requirement and my show words well requirement.<br>
There were tons of fonts that I could use. So I chose one that was <a href="https://practicaltypography.com/charter.html">free to use and I could host myself</a>.<br>
Not just hosting fonts, right now I can afford to host the site myself, so I have a Linode that hosts this blog.<br>
The static blog can just as easily be hosted on some free place like github.io if life takes a turn for the worse.<br>
I was learning Python, so using a static site generator that supports markdown and was built in Python seemed logical. So I picked <a href="https://getnikola.com/">Nikola</a>.<br>
(Did not really matter in the long run. I have used Go based Hugo, and Ruby based Jekyll too and all of them work essentially the same way. Even the theme I use on the blog, <a href="https://themes.getnikola.com/v7/lanyon/">Lanyon</a>, is originally a <a href="https://lanyon.getpoole.com/">Jekyll theme</a>, and can be found in <a href="https://themes.gohugo.io/lanyon/">Hugo</a> as well).<br>
So I learnt how to install it on my desktop, and customise it to use the fonts I wanted in the weights I wanted.<br>
Then I learnt how to automatically deploy it via ssh to my site.
Most static site engines offer to automatically deploy to github.io or are available as hosted services on Netlify. Here’s <a href="https://youtu.be/7Yg6HbwdRro">Nikola on Github/Netlify</a>.<br>
And finally, I’ve always wanted everything to be under my name, ergo the domain which I saved up for and bought.<br>
It’s not essential to your writing, but probably essential to your identity in the long run, so that might be something to consider too.</p>
<p>So there we are.<br>
One more post done :)<br>
If you have questions, mail me! (jason at this domain)</p>
<p>P.S. Subscribe to my <a href="/subscribe/">mailing list!</a><br>
Forward these posts and letters to your friends and get them to subscribe!<br>
P.P.S. Feed my <a href="https://www.amazon.in/hz/wishlist/ls/2QAUKHHAMOOVS?ref_=wl_share">insatiable reading habit.</a></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><small>or to a schedule that you are comfortable with and publicly commit to.</small>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>Beginning to Learn Django</title>
      <link>https://janusworx.com/work/beginning-to-learn-django/</link>
      <pubDate>Sat, 20 Mar 2021 12:50:07 +0530</pubDate>
      <guid>https://janusworx.com/work/beginning-to-learn-django/</guid>
      <description>&lt;p&gt;Hello folks!
Wish me luck on my Django journey&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Hello folks!
Wish me luck on my Django journey</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
