IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Sunday, 15 July

19:58

How to schedule jobs in a Django application using Heroku Scheduler "IndyWatch Feed Education"

https://unsplash.com/@agebarros

Recently, I published my first Django application on Heroku.

The application is fairly simpleit lists the score associated with every classical problem on SPOJ.

SPOJSphere Online Judgeis a problemset archive, online judge and contest hosting service accepting solutions in many languages.

You can find the application live here.

The application uses the Python libraries bs4 and requests to scrape the contents of the aforementioned website, obtain the required details for every problem (namelyproblem code, problem name, users and score), and store them in a database.

Now, the score associated with the problems on SPOJ is dynamic. It is calculated using the following formula:

80 / (40 + number_of_people_who_have_solved_the_problem)

So, the score associated with the problems on SPOJ changes as number_of_people_who_have_solved_the_problem changes.

Hence, the data collected by my application will be rendered useless after a certain interval of time. I need to set up a scheduler to keep my database updated.

Now, its a dead simple application. So I wanted to set up the scheduler with the least amount of configuration and code possible.

Custom Django Management Commands and Heroku Scheduler to the rescue!

Let us understand our two saviors.

1. Custom Django Management Commands

Custom Django Management Commands are structured as Python classes that inherit their properties and behavior from django.core.management.base.BaseCommand class.

They are used to add a manage.py action for a Django app. runserver or migrate are two such actions.

A typical example of such a class would be:

from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = ""
def handle(self, *args, **options):
self.stdout.write("Hello, World!")

The class must be named Command, and subclass BaseCommand.

help should hold a short description of the command, wh...

18:03

Cognitive Bias And Why Performance Management is So Hard "IndyWatch Feed Education"

My wife helped me draw this because although we both lacked the skill, she had the will.

Often, at work, you might come across someone who is not doing their job. It can be a peer, a report, or even your own manager. If its a report, well often refer to this as a performance problem. As a manager of managers, I see examples of this all the time with my peers and colleagues.

Its important that you accurately diagnose the problem before trying to fix it. Google has open-sourced its manager training slides*, and they have a great framework for diagnosis. In their framework, performance problems tend to be caused by:

  • Unclear expectations: Your colleague does not know what is expected of them. Maybe their manager (you?) hasnt set expectations for them clearly, or a team-mate has not clarified that they are blocked on their work or harmed by their quality of work.
  • Lack of skill: Your colleague does not know how to perform the tasks expected of them.
  • Lack of will: Your colleague is not motivated or interested in doing those tasks (they lack understanding or agreement of why they should be doing those tasks).

Andy Grove has a similar framework in his High Output Management book:

When a person is not doing his job, there can only be two reasons for it. The person either cant do it or wont do it; he is either not capable or not motivated.
Andy Grove

Have you ever tried to improve one of these situations and made it worse? I have. When I look back, many times its because I applied what I thought was the right solution, but to the wrong problem.

For instance, have you tried to motivate someone to do something that they dont really know how to do, only causing them (and you) further frustration? On the flip side, have you tried to train someone to do a task they already know how to do, but just have no interest in doingbelittling them and further undermining their motivation?

So then its pretty easy, right? Just use this framework, diagnose the problem, and then work on addressing it.

Unfortunately, its not so straightforward. The model is simplistic. Our brains tend to work against us in these situations through what are known as cognitive biases that tend to simplify situations and misattribute...

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

Saturday, 14 July

20:12

Weeks and Years "IndyWatch Feed Education"

Sometimes a weekll come at ya and it just wont quit and youll get to the end of it feeling a bit pummeled about the head and neck and then when you think its all done, news will come that could near knock you to your knees but you remember You remember that no matter []

Friday, 13 July

23:30

How to set up a short feedback loop as a solo coder "IndyWatch Feed Education"

Ive spent the last couple years as a solo freelance developer. Comparing this experience to previously working in companies, Ive noticed that those of us who work alone can have fewer iterative opportunities for improvement than developers who work on teams.

In order to to have opportunity to improve, we need to embrace the concept of a short feedback loop. This is a process of incorporating new learning from observation and previous experience continuously over a short period of time. This process has to be manufactured by people working mostly alone, instead of, as is often the case, adopted when you join a team.

In this post, I hope to share what Ive learned about setting yourself up to improve quickly and continuously as a solo coder.

About feedback loops

United States Air Force Colonel John Boyd developed the concept of the OODA loop, OODA being an acronym for observe, orient, decide, act. In military operations, this illustrates a process of decision-making based on the constant ingestion of new information:

Observe: Obtain raw information about unfolding circumstances and the current environment.

Orient: Put raw observations in context. Consider such things as relevancy to the current situation and previously gained knowledge and expertise.

Decide: Make a plan for moving towards your goal.

Act: Execute the plan.

Since its a loop, the act stage leads directly back into the observe stage. This is the critical feed back concept that enables increasingly successful iterations. Its widely applicable beyond military operationsyou may recognize it as the origin of the PDCA (plan-do-check-act) method.

I like the OODA loop, as its a succinct illustration of a general feedback loop. Many concepts and working methods build on the idea of feedback loops, including DevOps and agile software development methods.

Development team feedback loop

Lets look at what some components of a feedback loop for a developer on a team might look like:

  1. Direction from product owners or reviews from users
  2. Daily scrum/standup with whole team
  3. Prioritization with developer team
  4. Individual coding and testi...

IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Resource generated at IndyWatch using aliasfeed and rawdog