Live data from Hacker News

Using a logbook to improve your programming

routley.io

31–40 of 75 posts

Re: Using a logbook to improve your programming

#31
I like the idea, i just think MD files might be too limited. I really came to enjoy Onenote because it is so easy to put unstructured data, images, links, videos and even draw on top of it all with a stylus but i didn't use it for every task i do. Will try that in the future as i often have issues resuming old tasks or remembering some details to a problem in the past.

Re: Using a logbook to improve your programming

#32
post #17

Earlier quoted context omitted.

I've been using org-mode for about ten years to document moment-to moment progress on tasks. I'll give a basic summary of the problem, copy in significant commands and results as I run them, and ask the next questions to drive the next steps. Some features that make Org useful for this: - I'm clocked into the task so I can always jump to it easily, even as I hop around other emacs buffers - supports code snippets wit…

i'd be interested in learning more about this and maybe seeing some real-worldish examples.

Not the OP but I use org-mode to write articles for my website and also to manage my dotfiles, this-- [http://abhirag.in/articles/org/i3_setup.html] is just an org-mode file exported to html, you can also see the literate dotfiles on that page, they have been generated using org-babel. I am also trying to setup a proper literate programming workflow using org-babel but that is still a work in progress. For a glimpse of what org-mode supports you can look at this this article of mine -- [http://abhirag.in/articles/org/custom_org_theme.html]. Hopefully these examples helped but I have only scratched the surface here, have a look at-- [http://orgmode.org/worg/org-tutorials/] and other stuff on the official website to find more information :)

Re: Using a logbook to improve your programming

#34
post #25
post #22

Earlier quoted context omitted.

Well, I use this logbook approach, in a text editor with persistent undo (which allows a few tricks, like emulating folding by deletion and relying on undo history to unfold). I approximately follow this algorithm: - Consider the high-level goal; can it be completed immediately? if yes, do it, otherwise break it into smaller parts. - First part is usually some kind of research. If it's a bug, it'll be a reproduction.…

Emacs Org mode works wonderfully in a scenario like this. Consider trying it.

Better yet, try org-journal, which automates the one-file-per-day part, integrates with the calendar, and adds searching.

Re: Using a logbook to improve your programming

#37
I believe many of us already do what the author suggests, maybe in a slightly different way.

Here's how I use my own flavor:

1) I create a GOAL. The GOAL is my ultimate big picture, which will give me immense happiness. So, the most recent example is, I wanted to build an E-Commerce application.

2) I map out the PATHS to achieving my GOAL. So, what I consider PATHS is:

a) What programming language should I use? b) Which APIs should I use, Paypal or Stripe to accept payments[1]? and so on...

3) I follow a flavor of DDD[2] to come up with the important modules I need to have for a functioning E-Commerce project.

Examples: I will need a Order Management module, I will need a Marketing module (for sending emails, running campaigns). I will need a CMS module to host product pages.

4) For each of the modules, I will create an issue on Github and add a checklist[3] of the stuff I need to get done.

5) Everytime I make a commit, I will reference this issue and the tasks along with it. Eg. "Removed Paypal #12"

6) At the end of the week, I will review the commits and evaluate whether this particular method I used was worth it. A good use case would be experimenting with a library and comparing it with another - Eg. Bootstrap vs Semantic UI. I will use the learnings from this workflow in my future projects.

7) I will also see if something can be automated. For example, for my current E-Commerce project, I use Phoenix/Elixir. It has it's own set of scaffold generators, but they're opinionated (they use Bootstrap). So, for every project I got tired of replacing bootstrap and customizing the generated scaffolds. So, I wrote a custom generator that drastically saves me a lot of time for large projects.

Hope this helps :)

[1] Not sure why anyone would use PayPal in this day and age tho.

[2] https://stackoverflow.com/questions/1222392/can-someone-expl...

[3] https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-...

Re: Using a logbook to improve your programming

#38

What the author says about aliases in the bashrc being evaluated only once when the bashrc is run when the shell session is opened is wrong. Go ahead and try this: Put, alias lb='vim ~/logbook/$(date "+%s")' in your bashrc. Source the bashrc. Run the lb command. It creates a new file with a different epoch timestamp each time. This `lb` command doesn't need to be a bash function. It can be an alias and work just fine…

Their function uses single quotes on format string, so I'll bet they tried it like this:

   alias lb="vim ~/logbook/$(date '+%Y-%m-%d').md"
..which would do what was described.

Re: Using a logbook to improve your programming

#39

This article seems lacking some examples. I have found that such ideas are nice in theory, but when it comes to practice, they tend to fall short. So the author says that it's a good idea to write logbooks, and that it will help. But no mention on how it would help, and what would you actually do with them after you write them up. A few concrete examples would have been nice. If the idea is to help you solve the prob…

"It provides a framework for solving hard problems by encouraging you to break them down into a series of smaller ones.

"It helps you focus on the task at hand by providing immediate context on what you’re doing. If you forget or become distracted, you can quickly get back to your train of thought.

"It helps you learn quickly. You can observe your method for problem solving, see what works and what doesn’t and make improvements."

Saying "no mention on how it would help, and what you would do with them after you write them up" feels inaccurate to me (although the observation about the lack of specific examples is correct).

Post reply on HN