Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "themes/obsidian-hugo-texify3"]
path = themes/obsidian-hugo-texify3
url = git@github.com:akcube/obsidian-hugo-texify3.git
[submodule "publisher"]
path = publisher
url = git@github.com:akcube/obsidian-publisher.git
2 changes: 1 addition & 1 deletion content/blog/a-c-programmer-s-guide-to-c.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,4 +350,4 @@ int main(void){
// - No need to declare global variables (risk of not clearing, ugly, etc.)
// - Only need to pass the changing state to the lambda. All other constant "metadata" are captured automatically.
}
```
```
2 changes: 1 addition & 1 deletion content/blog/a-deep-dive-into-the-knapsack-problem.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,4 @@ This solution runs in $O(n \times \sum_{i}^{n}v_i)$ which gives us $\approx1e5$
Here's a link to my submission: [Submission Link](https://atcoder.jp/contests/dp/submissions/19494460)
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
8 changes: 0 additions & 8 deletions content/blog/activity-selection-huffman-encoding.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,3 @@ The following video was referenced while making this diary and is the source of
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
2. [Huffman Codes: An Information Theory Perspective - Reducible](https://youtu.be/B3y0RsVCyrw?si=5kFqRPa_XsGxpqBr)

---

## Related Reading

- [More Greedy Algorithms! Kruskal's & Disjoint Set Union](/blog/more-greedy-algorithms-kruskal-s-disjoint-set-union)
- [Set Cover & Approximation Algorithms](/blog/set-cover-approximation-algorithms)
- [DP as DAGs, Shortest path on DAGs & LIS in O(nlogn)](/blog/dp-as-dags-shortest-path-on-dags-lis-in-o-nlogn)
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,3 @@ If we simply ran local alignment between each of the short reads (which we usual
We begin by querying the k-mer index table for a query which allows us to **rapidly** home in on small set of candidate needles which are the only places in the entire sequence we really need to run our powerful but slower approximate matching algorithms on.

Thus, both concepts work well **together**, kind of making up for each other's shortcomings while still accomplishing their goals. On the one side, the index is highly quick and effective at reducing the number of locations to check, but it completely lacks a natural way to manage mismatches and gaps. However, dynamic programming does handle inconsistencies and gaps rather nicely. But it would be incredibly slow if we simply used dynamic programming.

2 changes: 1 addition & 1 deletion content/blog/amdahl-s-law-gustafson-s-law.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ When the problem and system scale, the serial part (statistically) does not scal

We'll discuss some cooler ways to extend these ideas in the case of task parallelism in [Brent's Theorem & Task Level Parallelism](/blog/brent-s-theorem-task-level-parallelism).
# References
These notes are quite old, and I wasn't rigorously collecting references back then. If any of the content used above belongs to you or someone you know, please let me know, and I'll attribute it accordingly.
These notes are quite old, and I wasn't rigorously collecting references back then. If any of the content used above belongs to you or someone you know, please let me know, and I'll attribute it accordingly.
Original file line number Diff line number Diff line change
Expand Up @@ -194,4 +194,4 @@ The fastest known algorithm till now is of the order of $O(nlogn)$ [by Harvey an
No, we do **not know** if this algorithm is the best at the time of writing this note. The theoretical lower bound we know of is $\Omega(n)$ as the very least we require to do is process every bit of the input. There may or may not exist an algorithm better than $nlog(n)$, but we do not know of any such algorithms.
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,4 @@ We will prove this in further lectures, but for the sake of intuition, notice th
This is a useful program as it allows us to check the accuracy of programs easily. However, since this is not a problem we can solve, we have resorted to probabilistic solutions which test two programs by running them on a large collection of sample test cases and checking if their outputs are the same. However, note that this is a **probabilistic** solution and not a **deterministic** solution.
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
Original file line number Diff line number Diff line change
Expand Up @@ -439,4 +439,4 @@ You'll notice that $\alpha = 0.01$ is sufficient, but $\alpha = 0.001$ still fai

The larger learning rate has chosen a slightly worse optimum, but it did reach there a lot faster than $\alpha = 0.01$. That's the tradeoff we make here.

And that's about it for linear regression. Next up, in [Basics of Supervised Learning - Logistic Regression](/blog/basics-of-supervised-learning-logistic-regression), we'll be expanding the ideas we learnt in this blog to train **logical** classifiers, where we'll see how a simple modification to our linear model - adding a non-linear activation function - transforms our regression problem into a powerful classification tool that will help us bridge the gap between linear models and the neural networks that eventually conquered the limitations of Rosenblatt's perceptron.
And that's about it for linear regression. Next up, in [Basics of Supervised Learning - Logistic Regression](/blog/basics-of-supervised-learning-logistic-regression), we'll be expanding the ideas we learnt in this blog to train **logical** classifiers, where we'll see how a simple modification to our linear model - adding a non-linear activation function - transforms our regression problem into a powerful classification tool that will help us bridge the gap between linear models and the neural networks that eventually conquered the limitations of Rosenblatt's perceptron.
2 changes: 1 addition & 1 deletion content/blog/brent-s-theorem-task-level-parallelism.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,4 @@ For ideal speedup, we want the denominator to be as close to 1 as possible. This

The first implication is fairly intuitive, we shouldn’t have to do extra work as we parallelize more. That is, parallel work $W_p$ shouldn’t scale with $W_*$ otherwise we’ll have to keep doing more work as we increase parallelization.

The second implication intuitively means that the ‘work per processor’ should grow proportional to span. That is, we shouldn’t be in a situation where $D_p$ (the span) increases but work per processor doesn’t, otherwise a lot of parallel compute power is wasted over waiting for the span to finish execution.
The second implication intuitively means that the ‘work per processor’ should grow proportional to span. That is, we shouldn’t be in a situation where $D_p$ (the span) increases but work per processor doesn’t, otherwise a lot of parallel compute power is wasted over waiting for the span to finish execution.
Original file line number Diff line number Diff line change
Expand Up @@ -750,4 +750,4 @@ Overall, it's a pretty nice framework. To the end-user, all the complexities of:

Are more or less completely abstracted out and kept "under-the-hood." Pretty neat.

There's more we can do here for sure. We can probably add some type validation and tool composition logic here as well, but that's for when I'm not as lazy :)
There's more we can do here for sure. We can probably add some type validation and tool composition logic here as well, but that's for when I'm not as lazy :)
7 changes: 0 additions & 7 deletions content/blog/chain-matrix-multiplication.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,3 @@ Last time, we were able to reduce the space complexity of our DP by realizing th
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H

---

## Related Reading

- [DP as DAGs, Shortest path on DAGs & LIS in O(nlogn)](/blog/dp-as-dags-shortest-path-on-dags-lis-in-o-nlogn)
- [A Deep Dive into the Knapsack Problem](/blog/a-deep-dive-into-the-knapsack-problem)
2 changes: 1 addition & 1 deletion content/blog/church-turing-hypothesis.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ The Turing machine is defined as a 7-tuple $(Q, \Sigma, \Gamma, \delta, q_0, q_{
If the machine ever reaches this state, then it can decide that the input does not belong to the language and output `0` and stop.
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
2 changes: 1 addition & 1 deletion content/blog/complexity-theory-reductions.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ What's more interesting is if these blue triangles are **polynomial-time** algor
We have effectively managed to solve $f$ using the solution of $g$, along with some (hopefully efficient) pre and post-processing.
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. A discussion with [Anurudh Peduri](https://anurudhp.github.io/) on the Theory Group Discord.
1. A discussion with [Anurudh Peduri](https://anurudhp.github.io/) on the Theory Group Discord.
7 changes: 0 additions & 7 deletions content/blog/covered-calls-strategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,3 @@ The premiums received from selling call options are generally considered short-t
If the stock price fluctuates significantly, even if it remains flat over the long term, the covered call strategy may result in a gradual reduction in the number of shares held due to the exercise of call options. This can lead to realizing losses, despite the overall position being flat.
## Risk-Adjusted Return Considerations
While some people argue that covered call strategies may offer superior risk-adjusted returns, meaning higher returns per unit of risk taken, this claim is subject to debate and may depend on the specific market conditions and underlying assets involved.

---

## Related Reading

- [Efficient-Market-Hypothesis](/blog/efficient-market-hypothesis)
- [What is the Stock Market?](/blog/what-is-the-stock-market)
1 change: 0 additions & 1 deletion content/blog/de-novo-assembly-overlap-graphs.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,3 @@ Let the nodes of the graphs represent the reads we have obtained of the genome.
Now, not all overlaps are equally important. For example, an overlap of size $1$ can be very frequently occurring and doesn't provide much evidence of it occurring due to it being consequent overlapping reads in the genome. Hence, we can build overlap graphs where an edge $e$ exists between an ordered pair of nodes $(u, v)$, only when the overlap between them exceeds some constant value. Consider the following overlap graph for overlaps of size $\geq 4$

![overlap-graph](/images/overlap-graph.webp)

2 changes: 1 addition & 1 deletion content/blog/defining-computational-problems.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,4 @@ In general, we put **time** at a pedestal compared to all other resources. In ge
Now that we've defined how to define a problem, let's try to construct useful arguments using this definition. [Are there computational problems that computers cannot solve?](/blog/are-there-computational-problems-that-computers-cannot-solve). How do we define a "solution" to a computation problem in an "algorithmic" sense. Note that this theory dates to before when computers were invented. How do we formalize a notion of a machine that can carry out these tasks? This is what the [Church-Turing Hypothesis](/blog/church-turing-hypothesis) aims to answer.
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
8 changes: 0 additions & 8 deletions content/blog/derivatives-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,3 @@ The Indian National Stock Exchange (since July 2018 expiry contracts), uses phys
4. [Physical Delivery - Investopedia](https://www.investopedia.com/terms/p/physicaldelivery.asp)
5. [Policy on settlement of compulsory delivery derivative contracts — Update Oct 2019 - Zerodha](https://zerodha.com/z-connect/general/policy-on-settlement-of-compulsory-delivery-derivative-contracts-update-oct-2019)
6. [Physical delivery of stock F&O & their risks - Zerodha](https://zerodha.com/z-connect/general/physical-delivery-of-stock-fo-their-risks)


---

## Related Reading

- [Covered Calls Strategy](/blog/covered-calls-strategy)
- [Efficient-Market-Hypothesis](/blog/efficient-market-hypothesis)
1 change: 0 additions & 1 deletion content/blog/dna-sequencing.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,3 @@ But the primary reason exact matching fails is due to the error(s) inherent in t
### Case II

In the case where there exists no already existing snapshot to follow, we will have to tackle the same problem faced by the people working on the original Human Genome Project (HGP). We rely on techniques of de novo assembly to reconstruct the genome string. We will discuss this in more detail towards the end of the course.

Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,3 @@ int lis(int arr[], int n) {
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
2. [Huffman Codes: An Information Theory Perspective - Reducible](https://youtu.be/B3y0RsVCyrw?si=5kFqRPa_XsGxpqBr)

---

## Related Reading

- [Levenshtein Edit Distance](/blog/levenshtein-edit-distance)
- [Chain Matrix Multiplication](/blog/chain-matrix-multiplication)
- [A Deep Dive into the Knapsack Problem](/blog/a-deep-dive-into-the-knapsack-problem)
2 changes: 1 addition & 1 deletion content/blog/flynn-s-taxonomy.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ The idea here is to basically take multiple scalar instructions operating on adj

SPMD → Single program multiple data. Distributed computing sort of works on this idea. Tasks are split up and run simultaneously on multiple processors with different input in order to obtain results faster. **Note that the two are not mutually exclusive.** [Map Reduce](https://en.wikipedia.org/wiki/MapReduce).
# References
These notes are quite old, and I wasn't rigorously collecting references back then. If any of the content used above belongs to you or someone you know, please let me know, and I'll attribute it accordingly.
These notes are quite old, and I wasn't rigorously collecting references back then. If any of the content used above belongs to you or someone you know, please let me know, and I'll attribute it accordingly.
2 changes: 1 addition & 1 deletion content/blog/getting-rid-of-short-form-content.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ The easiest fix is through ReVanced Manager.
Just install one of the many YouTube feed / shorts blockers from the chrome web store. I use [ShortsBlocker](https://chromewebstore.google.com/detail/shortsblocker-remove-shor/oahiolknhkbpcolgnpljehalnhblolkm?hl=en).

# TikTok
Easy fix. Uninstall. There's literally no point of having this app.
Easy fix. Uninstall. There's literally no point of having this app.
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,4 @@ Eventually, incomes increase, people become credit worthy and we enter the expan

Resources referred to:
1. [How The Economic Machine Works by Ray Dalio](https://www.youtube.com/@principlesbyraydalio)
2. [Investopedia](https://www.investopedia.com/)
2. [Investopedia](https://www.investopedia.com/)
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@ $$ log(n!) \leq log(n)+\dots+log(n) \\ log(n!) \leq nlog(n) \\ = \Theta(nlogn) $
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
2. [CLRS, Introduction to Algorithms](https://en.wikipedia.org/wiki/Introduction_to_Algorithms)
2. [CLRS, Introduction to Algorithms](https://en.wikipedia.org/wiki/Introduction_to_Algorithms)
Original file line number Diff line number Diff line change
Expand Up @@ -200,4 +200,3 @@ Let's formally state the properties we proved above into terms used by the paper
TBD
# Conclusion (Personal Thoughts)
RAFT is a great "academic" face of how simplicity is often the most powerful solution. In general, I empirically notice that the more complex, convoluted and difficult to understand something is in academia, the more 'respect' it's given. In software engineering, the opposite is usually true. The biggest impact you can have as a SWE is often via the simplest solutions. This is also why there's a lot of disdain between the two roles, but RAFT is a great example of proving that sometimes (especially in complex fields like distributed systems), making an algorithm understandable is just as crucial as making it correct and efficient. Researchers can reason about it's behavior more easily and build even more research on top of this easier. You're enabling future researchers to build even higher. One great example of this is [TiDB - Architecture](/blog/tidb-architecture) being built using RAFT for consistency.

2 changes: 1 addition & 1 deletion content/blog/introduction-to-complexity-theory.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,4 +145,4 @@ Now, onto [P vs NP](/blog/p-vs-np)
# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. Professor [Kannan Srinathan's](https://www.iiit.ac.in/people/faculty/srinathan/) course on Algorithm Analysis & Design in IIIT-H
2. [P vs. NP - The Biggest Unsolved Problem in Computer Science - Up And Atom](https://youtu.be/EHp4FPyajKQ?si=YrgWuQpxfDbc0dmW) (Great Channel, recommend checking out)
2. [P vs. NP - The Biggest Unsolved Problem in Computer Science - Up And Atom](https://youtu.be/EHp4FPyajKQ?si=YrgWuQpxfDbc0dmW) (Great Channel, recommend checking out)
2 changes: 1 addition & 1 deletion content/blog/knapsack-using-branch-and-bounding.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,4 @@ This is a natural question. ([A Deep Dive into the Knapsack Problem](/blog/a-dee

# References
These notes are old and I did not rigorously horde references back then. If some part of this content is your's or you know where it's from then do reach out to me and I'll update it.
1. [Discrete Optimization - University of Melbourne - Coursera](https://www.coursera.org/learn/discrete-optimization)
1. [Discrete Optimization - University of Melbourne - Coursera](https://www.coursera.org/learn/discrete-optimization)
Loading