diff options
| -rw-r--r-- | content/_index.md | 40 | ||||
| -rw-r--r-- | content/posts/_index.md | 6 | ||||
| -rw-r--r-- | content/posts/linear_algebra.md | 33 | ||||
| -rw-r--r-- | content/posts/process.md | 28 | ||||
| -rw-r--r-- | content/posts/software_engineering.md | 4 | ||||
| -rw-r--r-- | content/posts/tools.md | 27 | ||||
| -rw-r--r-- | layouts/_default/baseof.html | 70 | ||||
| -rw-r--r-- | layouts/_default/section.html | 1 | ||||
| -rw-r--r-- | layouts/partials/katex.html | 19 | ||||
| -rw-r--r-- | static/main.css | 7 |
10 files changed, 169 insertions, 66 deletions
diff --git a/content/_index.md b/content/_index.md index 7119f8f..0c8b30a 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,44 +1,34 @@ -If you would like to contact me or collaborate on the building the next generation of radio frequency products, please send me a message on [LinkedIn](https://www.linkedin.com/in/karanjayachandra) or write an email to: - -`me[at]karanj[dot]com` - -Welcome to my home on the world wide web! I am an RF engineer wandering across the pale blue dot constantly in search of the next interesting opportunity to learn. I have a specialization in signal processing. This page gives you an overview of my professional qualifications. I am currently working on the next generation of automotive Radar systems for adaptive cruise control, lane change assist, blind spot detection and cross traffic alert at NXP Semiconductors. I live in Rotterdam, The Netherlands. +Welcome to my home on the world wide web! I am a radio frequency (RF) engineer wandering the pale blue dot in search of the next interesting opportunity to learn. I help build systems that transmit and receive [radio waves](https://en.wikipedia.org/wiki/Radio_wave). This requires a broad understanding across analog and digital domains and I can help develop strong [signal processing](https://en.wikipedia.org/wiki/Signal_processing) algorithms for your application. If you would like to contact me or collaborate on the building the next generation of radio frequency products, please send me a message on [LinkedIn](https://www.linkedin.com/in/karanjayachandra) or write an email to `me{at}karanj{dot}com`.  -Signal Processing Engineer +Signal Processing and Test Engineer Systems and Applications - Algorithms NXP Semiconductors Eindhoven, The Netherlands -## The road so far - -### NXP Semiconductors - -My current work at NXP includes: +## My journey -- System Design: Development and integration of algorithms into a signal processing chain to estimate radar target parameters across 3 generations of radar systems. End-to-end testing of the developed system using cutting-edge lab equipment and validation of the performance in outdoor scenarios. I have developed and tested several sensors that utilize signal processing algorithms. -- Algorithm Design: I have developed algorithms individually and collaboratively, resulting in one patent and paper. I have verified the performance statistically using both simulations and data capture from internally developed radar sensors. These algorithms have been used to provide feedback to internal designers on future generations of NXP chips. -- Infrastructure Development: I have been in charge of both the development of simulation and lab environments for the test of signal processing algorithms across the Signal Processing team in NXP. In this role, I have helped speed up and standardize the testing process across multiple teams and projects. +I am currently working on the next generation of automotive Radar systems for adaptive cruise control, lane change assist, blind spot detection and cross traffic alert at NXP Semiconductors. I have developed algorithms and built signal processing chains to estimate radar target parameters across 3 generations of radar systems. I have performed end-to-end testing of the developed systems using cutting-edge lab equipment and validated its performance in outdoor scenarios. I have lead the development team infrastructure for verification and validation of RF systems. In this role, I have helped speed up and standardize the testing process across multiple teams and projects. -### SAP India +Before this I worked as a software consultant for three years at SAP India Pvt. Ltd. As a consultant I worked with diverse teams both within India and globally and delivered successful projects across multiple domains. At my tenure in SAP, I learnt how to manage stakeholders and create value for my team and company. This lead to multiple awards in recognition of my contributions. -I worked as a software consultant for three years at SAP India Pvt. Ltd. As a consultant I worked with diverse teams both within India and globally and delivered successful projects across multiple domains. At my tenure in SAP, I learnt how to manage stakeholders and create value for my team and company. This lead to multiple awards in recognition of my contributions. +As an intern at the Defence Research and Development organization, I worked in creating a method of uniquely identifying FPGA boards using the underlying silicon structure via ring oscillators. -### Defence Research and Development Organisation - -As an intern at the Defence Research and Development organization, I worked in creating a method of uniquely identifying FPGA boards using the underlying silicon structure via ring oscillators. This work gave me an understanding of real world applications of some of the theoretical background I learnt at [Amrita](https://www.amrita.edu/). +My Alma mater includes [TU Delft](https://microelectronics.tudelft.nl/Education/bio.php?id=1176) and [Amrita University](https://www.amrita.edu/) from where I got my master's and bachelor's degrees in electrical engineer respectively. During my studies I have specialized in signal processing with a strong background in linear algebra, calculus, and probability and statistics. I have taken up courses in Antenna Systems, Electromagnetism, Communication Theory, Remote Sensing and many more. ## My skills -I am well versed in python and MATLAB development. I have some experience in C programming to accelerate algorithms using DSP processors. I have worked with FPGAs in the part using VHDL but require time to refresh my skills. I also know a bit of web development as you can see via this [website](https://gitlab.com/KaranJayachandra/karanjayachandra.gitlab.io) and a hobby project of mine called [match up](https://gitlab.com/KaranJayachandra/match_up). Web development helps me create tools that can be shared across a wider audience such a team in my organization. I would like to learn Erlang for concurrent applications and OCaml for functional programming in the future. - -My Alma mater includes [Amrita University](https://www.amrita.edu/) and [TU Delft](https://microelectronics.tudelft.nl/Education/bio.php?id=1176) from where I got my bachelor's and master's degrees in electrical engineer respectively. During my studies I have specialized in signal processing with a strong background in linear algebra, probability and statistics. I have taken up courses in Antenna Systems, Electromagnetism, Communication Theory, Remote Sensing and many more. Please feel free to have a look at my [CV](https://karanjayachandra.gitlab.io/cv) for more information. +The problems the world faces are constantly changing; Being a generalist in such a dynamic situation is as asset. I have therefore strived to create a broad skill set. I have a basic understanding of how to write good software and I am well versed in python and MATLAB development. I have some experience in C programming to accelerate algorithms using DSP processors. I have worked with FPGAs in the past using VHDL for prototyping but require time to refresh my skills. I aim to upskill on circuit design as well. I also know a bit of web development as you can see via this [website](https://gitlab.com/KaranJayachandra/karanjayachandra.gitlab.io) and a hobby project of mine called [match up](https://gitlab.com/KaranJayachandra/match_up). Web development helps me create tools that can be shared across a wider audience such a team in my organization. I would like to learn Erlang for concurrent applications and OCaml for functional programming in the future. Attending conferences inspires me. I have attended [EuRAD 2024](https://ieee-aess.org/event/conference/2024-21st-european-radar-conference) in Paris and [IRC2023](https://ieee-aess.org/event/conference/2023-ieee-international-radar-conference) in Sydney. I speak English and have a A1+ [certification](https://www.icloud.com/iclouddrive/084ABlGSRhK2lCny1UmqPxuXg#024_ste_language_dutch_a1_plus) in Dutch. I also speak four other Indian languages. ## About Me -My guiding principles in life are [Rationalism](https://en.wikipedia.org/wiki/Rationalism) and [Humanism](https://en.wikipedia.org/wiki/Humanism). I believe in striving to push the boundaries of science as described wonderfully by [Matt Might](https://matt.might.net/articles/phd-school-in-pictures). But this push is matched by the need to innovate for a better future in more tangible way. I am always looking for new avenues to learn and grow in all aspect of life. +I aim to be _competent_ to able to efficiently bring about change, and _Considerate_ to know what to change and to work well with others. I would like to leave the world a better place that I found it; Privilege is a fertile ground for entitlement. Being competent is _not easy_ but being considerate is [hard](https://www.theseedsofscience.pub/p/why-arent-smart-people-happier). My guiding principles in life are [rationalism](https://en.wikipedia.org/wiki/Rationalism) and [humanism](https://en.wikipedia.org/wiki/Humanism). I believe in striving to push the boundaries of science as described wonderfully by [Matt Might](https://matt.might.net/articles/phd-school-in-pictures). But this push is matched by the need to innovate for a better future in more tangible way. I am always looking for new avenues to learn and grow in all aspect of life. + +> The one who plants trees, knowing he will never sit in their shade, has at least started to understand the meaning of life. - **Rabindranath Tagore** + +I am a [Tamilian](https://en.wikipedia.org/wiki/Tamils) born in Hyderabad and brought up in Kolar. I am naturally inquisitive, an unapologetic sceptic and have a thirst for knowledge. I enjoy sports, especially [badminton](https://badmintonnederland.toernooi.nl/player-profile/e76309d9-12b4-403e-b57c-39765194dd04) and have an on-again, off-again relationship with running. I also play snooker and chess on the wonderful [Lichess](https://lichess.org/@/KaranJayachandra) platform. I like playing the London System and the Scandinavian opening. If you would like to get better at chess, watch and learn from [John Bartholomew](https://www.youtube.com/@JohnBartholomewChess) and [Eric Rosen](https://www.youtube.com/@eric-rosen) My taste in music is mostly rock, metal and hip-hop. I am a self-taught campfire guitarist but hope to ditch the campfire title. I read both fiction and non-fiction titles when time permits. Authors that I like include Stephen King, John Grisham and Brandon Sanderson. -I am a [Tamilian](https://en.wikipedia.org/wiki/Tamils) born in Hyderabad and brought up in Kolar. I am naturally inquisitive, an unapologetic sceptic and have a thirst for knowledge. +> The world is a book and those who do not travel read only one page. -- **St. Augustine** -I enjoy sports, especially [badminton](https://badmintonnederland.toernooi.nl/player-profile/e76309d9-12b4-403e-b57c-39765194dd04) and have an on-again, off-again relationship with running. I also play snooker and chess on the wonderful [Lichess](https://lichess.org/@/KaranJayachandra) platform. I like playing the London System and the Scandinavian opening. If you would like to get better at chess, watch and learn from [John Bartholomew](https://www.youtube.com/@JohnBartholomewChess) and [Eric Rosen](https://www.youtube.com/@eric-rosen) My taste in music is mostly rock, metal and hip-hop. I am a self-taught campfire guitarist but hope to ditch the campfire title. I read both fiction and non-fiction titles when time permits. Authors that I like include Stephen King, John Grisham and Brandon Sanderson.
\ No newline at end of file +I travel once or twice a year to explore different cultures and enjoy trying different cuisines. I live in Rotterdam, The Netherlands. diff --git a/content/posts/_index.md b/content/posts/_index.md new file mode 100644 index 0000000..623e445 --- /dev/null +++ b/content/posts/_index.md @@ -0,0 +1,6 @@ +The articles below are a combination of cheat sheets for my future self and position essays. + +> While we teach, we learn. - **Seneca** + +> The unexamined life is not worth living. - **Socrates** +
\ No newline at end of file diff --git a/content/posts/linear_algebra.md b/content/posts/linear_algebra.md new file mode 100644 index 0000000..5239a97 --- /dev/null +++ b/content/posts/linear_algebra.md @@ -0,0 +1,33 @@ ++++
+title = "Essence of Linear Algebra"
+date = 2026-04-14
+math = true
++++
+
+When I first encountered linear algebra in school, I failed to realize the profound impact it has on the world around us. At this moment all I could think of was that this was a tool to solve $n$ equations in $n$ unknowns. This recurred when I was studying Linear Algebra although at a higher level during my undergraduate studies. When studying for my master's degree I saw the gaping hole in knowledge I had in basic mathematics. Things my fellow students found intuitive would require me to spend time writing several equations. It was at this point that I realized that I needed a refresher course. At this moment I came across [Gilbert Strang's Lectures for MIT18.06](https://www.youtube.com/watch?v=7UJ4CFRGd-U&list=PLE7DDD91010BC51F8). This was a godsend. Without this course I do not think I would have my degree or a job. I even wrote an email to this effect to Prof. Strang who was also kind enough to respond and warm greetings. I find his [book](https://math.mit.edu/~gs/linearalgebra/ila6/indexila6.html) on this topic to be the definitive source of information on Linear Algebra. No article can hope to capture the effect that attending his lectures would. I highly recommend that you do it if you have the time. However if you are in need of a quick recap of its concept, I summarize my understanding of the course in a way that made sense. It is more of a reference for myself for the future when I might forget a thing or two. Here we go!
+
+## Vectors
+
+The fundamental unit of linear algebra is a vector. A vector is a collection of numbers that belong together. The most basic of which you might be familiar with as the cartesian coordinate system where the numbers represent the components along the $x$, $y$ and $z$ axes.
+
+$$ \mathbf{v} = \begin{bmatrix} x \\\\ y \\\\ z \end{bmatrix} $$
+
+But it doesn't have to be this literal. A vector can contain any information. A more realistic example could be a vector containing id of a car dealership, the number of sedans sold at the location, the total number of sales persons and the number of years the location has been active. Any set of related information can be added to a vector. Even words can be used by creating a numerical representation of it. This is what is done by LLMs. A vector is not limited in dimensions. The examples above have 3 and 4 dimensions or in mathematical terms in $\mathcal{R}^3$ and $\mathcal{R}^4$. But this can be extended to any random number of dimensions, $\mathcal{R}^n$. Vectors can be added together and scale. A linear combination is a generalization of combining vectors in different amounts. Notice that vectors are usually denoted in bold in mathematical notation.
+
+$$ \mathbf{y} = c_1 \mathbf{x}_1 + c_2 \mathbf{x}_2 + c_3 \mathbf{x}_3 $$
+
+## Matrices
+
+A matrix is a useful way of representing a transformation. A matrix is a set of vector as described in the earlier section stacked together horizontally. Another way of thinking of a matrix is the transformation of reference axes. In 3 dimensions, the unit vector along the $x$, $y$ and $z$ axis is defined as $\begin{bmatrix} 1 & 0 & 0 \end{bmatrix}$, $\begin{bmatrix} 0 & 1 & 0 \end{bmatrix}$ and $\begin{bmatrix} 0 & 0 & 1 \end{bmatrix}$. If we stack these one top of each other, we arrive at the identity matrix or the default axes. We can transform these axes to point to any other directions by just stacking those vectors into a matrix and then multiplying them. Notice that the operation carried out is now just the dot product of the vector with axes that was just defined. The dot product is just a measure of how much the vector is pointing in the direction of another vector which in our case is the new axes.
+
+$$ \mathbf{v} = \begin{bmatrix} 1 & 2 & 3\\\\ 3 & 5 & 8 \\\\ 11 & 3 & 1 \end{bmatrix} \begin{bmatrix} x \\\\ y \\\\ z \end{bmatrix} = \begin{bmatrix} x + 2y + 3z \\\\ 3x + 5y + 8z \\\\ 11x + 3y + z \end{bmatrix} $$
+
+This operation is another way of representing the linear transformation discussed in the previous section. I like to this of this operation as refocusing any and all vectors to a different section of space. This can be generalized with a change in the origin as well using the affine transformation written as:
+
+$$ \mathbf{y} = \mathbf{A} \mathbf{x} + \mathbf{b} $$
+
+where $\mathbf{A}$ is the change in perspective and $\mathbf{b}$ is the change in point of reference.
+
+## Matrix Rank
+
+This section is to be continued.
\ No newline at end of file diff --git a/content/posts/process.md b/content/posts/process.md new file mode 100644 index 0000000..ef32bbb --- /dev/null +++ b/content/posts/process.md @@ -0,0 +1,28 @@ ++++ +title = "My way of working" +date = 2026-01-04 ++++ + +Being better at anything takes time and is hard. I try to enjoy the process rather than celebrating the achievement of goals. If I forget everything else, I just try to remember to **work against resistance**. + +> One must imagine sisyphus happy. - **Camus** + +Although I am not productive all the time or [even want to](https://sohl-dickstein.github.io/2022/11/06/strong-Goodhart.html), I still try to use my time efficiently. With this in mind, I came up with a process. According to [Atomic Habits](https://jamesclear.com/atomic-habits-summary), following a process and creating habits slowly is the best way to improve. Creating a habit requires that the task is obvious, attractive, easy and satisfying. The opposite should be done to break bad habits. Any changes I make I should be willing to make permanently. I am motivated when I am learning something or delivering something of value. I approach my life both top-down and bottom-up. + +## Top-Down + +A top-down starts being identifying areas of improvement every year and creating SMART goals for each area and achieving them via [time bound](https://en.wikipedia.org/wiki/Pareto_principle) projects. This needs to set at a sustainable pace. I let people in my life know about this so that I can be accountable. The projects need to be either hell yes; or no and projects don't always need to be [completed](https://cassidoo.co/post/questions-when-i-need-to-finish-something/). I try to block at least [5 slots](https://calnewport.com/deep-work-rules-for-focused-success-in-a-distracted-world/) of 2 hour at minimum to work on projects that matter to me deeply. I try to limit active projects to 1 or 2 and maintain a list of next actions for each of them. Tasks don’t all need to be done by me; I do not mind delegation if possible. + +## Bottom-Up + +While working, I try to store information either via this blog or being documenting projects. I also try to study something new or refresh something from my past experience to keep myself up to date. Studying more doesn't help; studying effectively leads to better results. I try to learn conceptually; facts can be looked up. I start with a quick-read to create an overview of what I am learning. I follow this by fully reading what I am studying without stopping and do a third pass while taking brief [notes](https://www2.cortland.edu/offices/asap/student-resources/cornell-note-taking). I then expand them with my own words and then summarize what I have learnt in my own words. I also try to connect them to things I already know. Some key learnings: + +- Remembering things and recognizing them read are not the same. Test yourself. +- Using mnemonics instead of rote memorization provides better results. + +## References + +- [PARA Method](https://fortelabs.com/blog/para/) +- [How To Take Better Lecture Notes](https://www.youtube.com/watch?v=Bvsf591rYWE) +- [You Must Read At Least One Book To Ride](https://ludic.mataroa.blog/blog/you-must-read-at-least-one-book-to-ride/) +- [Study Less Study Smart](https://www.youtube.com/watch?v=IlU-zDU6aQ0) diff --git a/content/posts/software_engineering.md b/content/posts/software_engineering.md index 6fc5eac..91d596b 100644 --- a/content/posts/software_engineering.md +++ b/content/posts/software_engineering.md @@ -1,6 +1,6 @@ +++
title = "Notes on Software Engineering"
-date = 2025-02-04
+date = 2026-02-04
+++
I worked at a large software company, [SAP](https://www.sap.com) for three years. But I didn't get to learn much about software engineering. SAP has its own tools and process that have already dictated how things work. But over the years, I have realized how important software engineering can be. Here I outline some of the lessons I have learnt (some with a lot of pain) about this. If you are reading this and don't know where you or ytour team stands on software engineering, take the [Joel Test](https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/). This is a living list and will be kept up to date based on my experiences.
@@ -45,7 +45,9 @@ Simple, fast and open tools are usually better in most cases. They allow for qui ## References
+- [Pragmatic Programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)
- [21 Lessons from Google](https://addyosmani.com/blog/21-lessons/)
- [Big O](https://samwho.dev/big-o/)
- [Periodic Table of System Design](https://github.com/jarulraj/periodic-table)
- [Refactoring Guru](https://refactoring.guru/refactoring/catalog)
+- [Useful git commands](https://piechowski.io/post/git-commands-before-reading-code/)
\ No newline at end of file diff --git a/content/posts/tools.md b/content/posts/tools.md new file mode 100644 index 0000000..56b5d1b --- /dev/null +++ b/content/posts/tools.md @@ -0,0 +1,27 @@ ++++
+title = "My toolkit"
+date = 2026-03-25
++++
+
+Technology has transformed our lives. However, sometimes it overextend their reach into certain areas of my life. There I draw clear boundaries on what my use cases are where computers, phones and other general purpose devices can help me. These are listed below in the order of priority.
+
+1. Communication
+2. Services
+3. Documents
+4. Engineering
+5. Media
+6. Time Management
+
+I have a phone and a backup along with a laptop and a tablet which acts as its back to achieve these use cases. Before using any of these though, I recommend everyone to setup a password manager. I use [Bitwarden](https://bitwarden.com). Use an ad blocker as well. This will reduce distractions when browsing the internet. I recommend [uBlock](https://ublockorigin.com). Any system I create:
+
+## Must haves
+
+I _communicate_ with family and friends via text messages and calls. I prefer using Signal for messaging but also use Whatsapp. I also have an email attached to my domain and a separate email address which I fill in when I don't want to provide my primary one. I believe that email is a better form of communication that instant messaging aas it respects the time of the correspondents. Many services in the modern world are also becoming more digital. Governmental agencies, banking, navigation or online only stores are also important _services_ that I need to access.
+
+## Should haves
+
+Managing documents is much easier with a digital device. Once digitized they are always available and can be backed up. I use a personal network attached storage (NAS) and iCloud for this. I also cannot live without the use of engineering tools that have made life much easier. These are tools for programming, hardware and mechanical design. If you want to learn something from scratch, I highly recommend Python, KiCAD and OpenSCAD respectively. I also use typesetting tools such as LaTeX or Typst to generate high quality PDFs to share with others. [Ipe](https://ipe.otfried.org) is also a great tool to augment the others for diagrams. I try to stay away from tools that could take my data hostage via proprietary formats or other forms of lock in. I use plain text via Markdown when possible. I prefer to use VS Code for programming or NeoVim for text documents. I also generate HTML using hugo to crates websites such as this to store information that I share with others. I have digital music and images that I also store on iCloud and my NAS so that I can stream from it to many devices. I keep this locked behind a Tailnet to precent unauthorized access.
+
+## Could haves
+
+I am not picky with reminders and a calendar. I use iCloud for now as I don't mind loosing this information. I also store movies and TV shows on my NAS which allows me to consume and own my media collection. I occasionally game for which I use a Playstation 5.
\ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 012e942..ef4b55a 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,36 +1,40 @@ <!DOCTYPE html> <html> - <head lang="en-gb"> - <meta charset="utf-8" /> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - {{- $title := ( .Title ) -}} - {{- $siteTitle := ( .Site.Title ) -}} - {{- if .IsHome -}} - <title> {{ $siteTitle }} </title> - {{- else -}} - <title> {{ $siteTitle }} | {{ $title }} </title> - {{- end -}} - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" /> - <meta name="keywords" content="Karan, Jayachandra, Notes"> - <meta name="author" content="Karan Jayachandra"> - <link href="https://cdn.jsdelivr.net/npm/computer-modern@0.1.3/cmu-serif.min.css" rel="stylesheet"> - <link rel="stylesheet" type="text/css" media="screen" href="/main.css"/> - <link rel="icon" href="https://karanj.com/favicon-light.png" type="image/x-icon"> - <link rel="icon" href="https://karanj.com/favicon-dark.png" type="image/x-icon" media="(prefers-color-scheme: dark)"> - </head> - <body> - <div style="text-align: center; font-size: xx-large; font-weight: 900;">Karan Jayachandra</div> - <nav> - <ul> - <a href="/"><li>Home</li></a> - <a href="https://gitlab.com/KaranJayachandra"><li>Projects</li></a> - <a href="/resume.pdf"><li>Resume</li></a> - <a href="/posts"><li>Posts</li></a> - </ul> - </nav> - <main> {{- block "main" . }}{{- end }} </main> - <hr style="border-bottom: dotted 1px; border-top: none;"> - <footer>This content is licensed <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a></footer> - </body> + <head lang="en-gb"> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + {{- $title := ( .Title ) -}} + {{- $siteTitle := ( .Site.Title ) -}} + {{- if .IsHome -}} + <title> {{ $siteTitle }} </title> + {{- else -}} + <title> {{ $siteTitle }} | {{ $title }} </title> + {{- end -}} + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" /> + <meta name="keywords" content="Karan, Jayachandra, Notes"> + <meta name="author" content="Karan Jayachandra"> + <link href="https://cdn.jsdelivr.net/npm/computer-modern@0.1.3/cmu-serif.min.css" rel="stylesheet"> + <link rel="stylesheet" type="text/css" media="screen" href="/main.css"/> + <link rel="icon" href="https://karanj.com/favicon-light.png" type="image/x-icon"> + <link rel="icon" href="https://karanj.com/favicon-dark.png" type="image/x-icon" media="(prefers-color-scheme: dark)"> + {{if .Params.math }} {{ partial "katex.html" . }} {{end}} + </head> + <body> + <div style="text-align: center; font-size: xx-large; font-weight: 900;">Karan Jayachandra</div> + <nav> + <ul> + <a href="/"><li>Home</li></a> + <a href="https://gitlab.com/KaranJayachandra"><li>Projects</li></a> + <a href="/resume.pdf"><li>Resume</li></a> + <a href="/posts"><li>Posts</li></a> + </ul> + </nav> + <main> {{- block "main" . }}{{- end }} </main> + <hr style="border-bottom: dotted 1px; border-top: none;"> + <footer> + <div>Contact me via <a href="https://www.linkedin.com/in/karanjayachandra">LinkedIn</a> or email me at <code>me{at}karanj{dot}com</code></div> + <div>This content is licensed <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.</div> + </footer> + </body> </html>
\ No newline at end of file diff --git a/layouts/_default/section.html b/layouts/_default/section.html index e8a59fe..758eabb 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -1,5 +1,6 @@ {{ define "main" }} <h1>{{ strings.Title .Section }}</h1> +{{ .Content }} <div style="display: grid;"> {{ $paginator := .Paginate .Site.RegularPages.ByDate }} {{ range $index, $element := $paginator.Pages }} diff --git a/layouts/partials/katex.html b/layouts/partials/katex.html new file mode 100644 index 0000000..4bb388c --- /dev/null +++ b/layouts/partials/katex.html @@ -0,0 +1,19 @@ +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous"> +<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script> +<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script> +<script> + document.addEventListener("DOMContentLoaded", function() { + renderMathInElement(document.body, { + // customised options + // • auto-render specific keys, e.g.: + delimiters: [ + {left: '$$', right: '$$', display: true}, + {left: '$', right: '$', display: false}, + {left: '\\(', right: '\\)', display: false}, + {left: '\\[', right: '\\]', display: true} + ], + // • rendering keys, e.g.: + throwOnError : false + }); + }); +</script>
\ No newline at end of file diff --git a/static/main.css b/static/main.css index cfdf2af..749d9b9 100644 --- a/static/main.css +++ b/static/main.css @@ -63,13 +63,6 @@ table { th, td {
border: 1px solid;
}
-kbd, code, pre {
- background-color: var(--code-bg-color);
- font-size: large;
-}
-mark {
- background-color: var(--theme-color);
-}
footer {
text-align: center;
padding-top: 2%;
|
