Async: how it is handled internally in JS (Tasks, Microtasks/Jobs, Queues, Schedule)

I have found this wonderful step-by-step-diagramms in an article from I want to share with you: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ It also contains an example with event bubbling 🙂

In summary:

  • Tasks execute in order, and the browser may render between them
  • Microtasks execute in order, and are executed:
    • after every callback, as long as no other JavaScript is mid-execution
    • at the end of each task

What programming language should I learn?

Well, you might have noticed, I am an excessive medium reader. This time I stumbled across an article about, what programming languages should I learn (as a beginner). Whereas most suggestions are either Python or JavaScript, Eric Girouard suggests the one and only fundamental thing in computer science: Logic! If you are able to solve problems logically fitting to a computer’s “mind”, it doesn’t matter which programming language you are using to express it.

Closures (in JavaScript)

If you return a function (instead of a value or object), you will have to think about closures. You are not just returning the function definition but also the all the variables in scope at the time of creation of the function! This is called a closure. A read a nice Medium article with some very detailed step-to-step explanation, I’d like to recommend.

Continue reading “Closures (in JavaScript)”

Prioritization of Product Backlog Items

Every single feature in the backlog should answer following questions:

  • Are the users going to buy this?
  • Is it going to solve a problem our customers face?
  • How do you structure the problem so when you speak about it with your users, they are thinking about it in the same way?
  • Is it going to improve the overall experience?
  • Is it going to highlight our strong parts of the product?
  • Does this bring closer to our product vision?
  • How can we measure the success of this feature?
  • Can our stakeholders support this?
  • What are the risks and problems we have to overcome?
  • Can our engineers build this?
  • Can a user figure out how to use it?

Developed from input based on https://medium.com/@eugenesanu/the-problem-with-product-roadmaps-fd3a40090f7c and https://uxplanet.org/top-questions-to-ask-before-designing-anything-2141c7f64888

LVM: increase size of existing logical volumes without reboot/new partition

Sometimes it is necessary to increase the size of your logical volume but you cannot/want reboot and/or create a new partition.

  1. Increase the hard disk space by allocating it on the host system to the your virtual machine
  2. echo 1>/sys/class/block/sdaX/device/rescan so that you VM knows the new hard disk capacity
  3. use parted (or your personal preference) to increase the partition size
    • Tip: run unit kb in parted for a more precise aligning of the partitions
    • Tip 2: keep in mind that you have to increase both logical parition and lvm flagged partition. Logical partitions are like containers for the lvm flagged partition.
  4. Increase LVM Physical device: pvresize /dev/sdX
  5. Increase LVM Logical Volume: lvextend -l+100%FREE /dev/mapper/XX
  6. Increase FileSystem: resize2fs /dev/mapper/XX

Done!