diff options
| -rw-r--r-- | content/_index.md | 6 | ||||
| -rw-r--r-- | content/posts/python.md | 41 | ||||
| -rw-r--r-- | layouts/_default/baseof.html | 58 | ||||
| -rw-r--r-- | layouts/_default/section.html | 19 | ||||
| -rw-r--r-- | layouts/_default/single.html | 9 |
5 files changed, 103 insertions, 30 deletions
diff --git a/content/_index.md b/content/_index.md index 22ee76f..9e58ce8 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,10 +1,8 @@ # Karan Jayachandra -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. - -If you would like to contact me or collaborate on the building the next generation of radio frequency products, please write an email to: +If you would like to contact me or collaborate on the building the next generation of radio frequency products, please write an email to ```me[at]karanj[dot]com``` or send me a message on [LinkedIn](https://www.linkedin.com/in/karanjayachandra). -```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.  diff --git a/content/posts/python.md b/content/posts/python.md new file mode 100644 index 0000000..d1ec9c0 --- /dev/null +++ b/content/posts/python.md @@ -0,0 +1,41 @@ ++++
+title = "Python is king"
+date = 2026-02-01
++++
+
+> TLDR; Learning python brings you the most return on investment for your time.
+
+Although python has it's share of gripes, it is the most useful programming language to learn as an engineer. Before you start grabbing your pitchforks, I say for engineers not for programmers. This article is written to:
+
+1. Explain why I learnt python and situations where I find it useful.
+2. Convince engineers to add python to their list of tools to broaden their horizon considerably.
+
+A much better case for python has been made by [Cameron](https://cameron.rs/blog/python-sucks/) but here is my opinion for reference.
+
+## Simplicity
+
+Python is simple from a developer and user perspective. Installing and running python takes less than 5 minutes in Linux and MacOS. OSs install python by default in a few cases. Setting it up in Windows takes more effort as is the case with everything else in Windows. There have been instances with the python executable not being added to the path when I installed python but starting with python is a smooth developer experience. There are excellent integrated development environments or text editors with plugins that make the developer experience enjoyable. I currently using VS Code with the appropriate plugins. I would like to switch to neovim in the future. But slowing down my developer output is not viable at the moment.
+
+## Packages
+
+Here is a list of things I have used python for in no particular order:
+
+- Extracting and combining PDF pages
+- A web application using [Dash](https://dash.plotly.com)
+- The first version of my hobby project [Match up](https://mu.karanj.com) was built using [Flask](https://flask.palletsprojects.com)
+- Parsing my bank transactions and visualizing data using [matplotlib](https://matplotlib.org)
+
+I use [numpy](https://numpy.org) and [scipy](https://scipy.org) extensively to generate data for signal processing at work. I am evaluating TensorFlow and PyTorch as alternatives. I routinely perform measurements in the laboratory where [pymeasure](https://pymeasure.readthedocs.io) is invaluable. This is to demonstrate that I don't have to write much code myself before I see direct benefit in my day to day activities. I am leveraging work of smart people, much smarter than me. This doesn’t mean that I don’t try to understand the underlying systems. As an engineer I try to understand all the tools I use as best as I can. A few abstractions can be examined a later point in time though. I try to avoid unknown packages and stick to large libraries to minimise chances of malicious code.
+
+## Community
+
+
+
+Popularity of the language and general acceptance matters. Python has one of the [largest](https://www.tiobe.com/tiobe-index/) community of developers. It is backed by several large companies and there is always a need for python developers. When I run into an issue or bug, I almost always find useful tips on stackoverflow, blog posts or tutorials. Sharing your code via scripts and packages is easy. I have run into issues with MATLAB where it takes colleagues hours to figure out how to install it along with the toolboxes needed to run my code. Allowing anyone in the world to use the tools I make is important to me.
+
+## Practical tips
+
+- Use [UV](https://docs.astral.sh/uv/), nothing else comes close in managing python versions, dependencies and environments. Try to stay away from the latest version of python. One version older is the sweet spot as your dependencies will support it.
+- A simple scripts can take you a long way before needing a more complex project. Specify [dependencies](https://docs.astral.sh/uv/guides/scripts/#creating-a-python-script) `uv add --script` run scripts using `uv run`.
+- Create packages when distributing your work as a black box. It is a simple procedure by specifying a `pyproject.toml` document in your root folder.
+- A simple README file goes a long way in documenting your work other than the comments in your code. More complex documentation can be handled by [pdoc](https://pdoc.dev). The absolute best in class with all features is [sphinx](https://www.sphinx-doc.org).
\ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index d8c9aec..1e893be 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,28 +1,34 @@ <!DOCTYPE html> -<html lang="en-gb"> - <head> - <meta charset="utf-8"> - <meta name="description" content="Come collaborate to create the next generation of RF products. On this website you can find Karan's qualifications and projects." /> - <meta name="keywords" content="Karan, Jayachandra, RF, Signal Processing, Engineer"> - <meta name="author" content="Karan Jayachandra"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title> {{ site.Title }} </title> - <link rel="stylesheet" href="/main.css"> - <link rel="icon" href="/favicon-light.png" type="image/x-icon"> - <link rel="icon" href="/favicon-light.png" type="image/x-icon" media="(prefers-color-scheme: light)"> - <link rel="icon" href="/favicon-dark.png" type="image/x-icon" media="(prefers-color-scheme: dark)"> - </head> - <body> - <nav> - <ul> - <a href="/"><li>Home</li></a> - <a href="https://gitlab.com/KaranJayachandra"><li>Gitlab</li></a> - <a href="https://karanjayachandra.gitlab.io/cv"><li>CV</li></a> - <a href="https://www.linkedin.com/in/karanjayachandra"><li>LinkedIn</li></a> - </ul> - </nav> - <main> - {{ block "main" . }}{{ end }} - </main> - </body> +<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 rel="stylesheet" type="text/css" media="screen" href="https://karanj.com/main.css"/> + <link rel="icon" href="https://karanj.com/favicon-light.png" type="image/x-icon"> + <link rel="icon" href="https://karanj.com/favicon-light.png" type="image/x-icon" media="(prefers-color-scheme: light)"> + <link rel="icon" href="https://karanj.com/favicon-dark.png" type="image/x-icon" media="(prefers-color-scheme: dark)"> + </head> + <body> + <nav> + <ul> + <a href="/"><li>Home</li></a> + <a href="https://gitlab.com/KaranJayachandra"><li>Gitlab</li></a> + <a href="https://karanjayachandra.gitlab.io/cv"><li>CV</li></a> + <a href="/Posts"><li>Posts</li></a> + </ul> + </nav> + <main> {{- block "main" . }}{{- end }} </main> + </body> + <p style="margin-bottom:1cm;"></p> </html>
\ No newline at end of file diff --git a/layouts/_default/section.html b/layouts/_default/section.html new file mode 100644 index 0000000..a27e808 --- /dev/null +++ b/layouts/_default/section.html @@ -0,0 +1,19 @@ +{{ define "main" }} +<h1>{{ strings.Title .Section }}</h1> +<table style="width: 100%"> + <colgroup> + <col span="1" style="width: 10%;"> + <col span="1" style="width: 30%;"> + <col span="1" style="width: 60%;"> + </colgroup> + {{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }} + {{ $paginator := .Paginate (where $pages "Params.hidden" "ne" true) }} + {{ range $index, $element := $paginator.Pages }} + <tr> + <td style="border: none; text-align: right;">{{ add $index 1 }}</td> + <td style="border: none; text-align: center;">{{ dateFormat "2006-01-02" $element.Date }}</td> + <td style="border: none;"><a href="{{ .RelPermalink }}">{{ $element.Title }}</a></td> + </tr> + {{ end }} +</table> +{{ end }}
\ No newline at end of file diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..379bdc5 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,9 @@ +{{ define "main" }} +<article> + <h1>{{ .Title }}</h1> + <div><time>{{ dateFormat ":date_medium" .Date }}</time></div> + {{ .Content }} +</article> +<hr style="border-bottom: dotted 1px; border-top: none;" > +<footer>Back to <a href="/Posts">Posts<a></footer> +{{ end }}
\ No newline at end of file |
