diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 index 74d5e2d..a948088 100644 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 @@ -1,2 +1 @@ -I" -{"source"=>"/Users/azuga/Works/rahulakrishna.github.io", "destination"=>"/Users/azuga/Works/rahulakrishna.github.io/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title:output_ext"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>["jekyll-feed", "jekyll-link-attributes"], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"", "show_dir_listing"=>false, "permalink"=>"date", "paginate_path"=>"/page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false, "syntax_highlighter"=>"rouge", "syntax_highlighter_opts"=>{:default_lang=>"plaintext", :guess_lang=>true}, "coderay"=>{}}, "title"=>"Rahul Krishna", "email"=>"rkbalu524@gmail.com", "description"=>"Frontend Engineer.", "url"=>"http://localhost:4000", "twitter_username"=>"_thisdot", "github_username"=>"rahulakrishna", "mastodon"=>[{"username"=>"_thisdot", "instance"=>"mastodon.social"}], "external_links"=>{"enabled"=>true, "rel"=>"me", "target"=>"_blank"}, "theme"=>"minima", "livereload_port"=>35729, "serving"=>true, "watch"=>true}:ET \ No newline at end of file +I"{"source"=>"/Users/azuga/Works/rahulakrishna.github.io", "destination"=>"/Users/azuga/Works/rahulakrishna.github.io/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/:categories/:year/:month/:day/:title:output_ext"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>[".sass-cache", ".jekyll-cache", "gemfiles", "Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>["jekyll-feed", "jekyll-link-attributes"], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"\n\n", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"", "show_dir_listing"=>false, "permalink"=>"date", "paginate_path"=>"/page:num", "timezone"=>nil, "quiet"=>false, "verbose"=>false, "defaults"=>[], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false}, "title"=>"Rahul Krishna", "email"=>"rkbalu524@gmail.com", "description"=>"Frontend Engineer.", "url"=>"http://localhost:4000", "twitter_username"=>"_thisdot", "github_username"=>"rahulakrishna", "mastodon"=>[{"username"=>"_thisdot", "instance"=>"mastodon.social"}], "external_links"=>{"enabled"=>true, "rel"=>"me", "target"=>"_blank"}, "theme"=>"minima", "livereload_port"=>35729, "serving"=>true, "watch"=>true}:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/01/649de358df3b66db851455f63fafc1d86cb120f62220417e47a55ebdf52c82 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/01/649de358df3b66db851455f63fafc1d86cb120f62220417e47a55ebdf52c82 deleted file mode 100644 index 072d8fc..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/01/649de358df3b66db851455f63fafc1d86cb120f62220417e47a55ebdf52c82 +++ /dev/null @@ -1,113 +0,0 @@ -I"9

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

**************The Atom UI**************

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/07/737147c5983cbc1fbfadd38a86105a7e761f6dd6d5ffc33acef269feee7f3e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/07/737147c5983cbc1fbfadd38a86105a7e761f6dd6d5ffc33acef269feee7f3e deleted file mode 100644 index 6cb7c24..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/07/737147c5983cbc1fbfadd38a86105a7e761f6dd6d5ffc33acef269feee7f3e +++ /dev/null @@ -1,2 +0,0 @@ -I"I

Memory Leak in Google Maps

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/0b/681dedd0c696833c334c24c3bc1fdbde6fbb402918938dbcdc0e860b44d323 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/0b/681dedd0c696833c334c24c3bc1fdbde6fbb402918938dbcdc0e860b44d323 deleted file mode 100644 index 8925a00..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/0b/681dedd0c696833c334c24c3bc1fdbde6fbb402918938dbcdc0e860b44d323 +++ /dev/null @@ -1,115 +0,0 @@ -I"ô

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -
- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/12/4b658e9eb4e426b1e5cc36081d695df35ed356566327e33a6a661961d3e1a3 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/12/4b658e9eb4e426b1e5cc36081d695df35ed356566327e33a6a661961d3e1a3 deleted file mode 100644 index bc95c17..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/12/4b658e9eb4e426b1e5cc36081d695df35ed356566327e33a6a661961d3e1a3 +++ /dev/null @@ -1,113 +0,0 @@ -I"Î

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/4dc97e5e22d0b8e83b674102b813c4d35f694bef5691b55801319d2bf661e2 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/4dc97e5e22d0b8e83b674102b813c4d35f694bef5691b55801319d2bf661e2 deleted file mode 100644 index a7f711a..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/1a/4dc97e5e22d0b8e83b674102b813c4d35f694bef5691b55801319d2bf661e2 +++ /dev/null @@ -1,2 +0,0 @@ -I"#

Date: October 21, 2023

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/6500b0b21ba04c8c2f32a56b7f5b8a40e184ba2e2f8cabd75280b30f006f22 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/6500b0b21ba04c8c2f32a56b7f5b8a40e184ba2e2f8cabd75280b30f006f22 deleted file mode 100644 index 860b4aa..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/6500b0b21ba04c8c2f32a56b7f5b8a40e184ba2e2f8cabd75280b30f006f22 +++ /dev/null @@ -1,113 +0,0 @@ -I"í

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

\The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/d9f035e5480a8914548140f68ce84cec9d9856c21c7d3fc5dfa4feb79a07a6 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/d9f035e5480a8914548140f68ce84cec9d9856c21c7d3fc5dfa4feb79a07a6 deleted file mode 100644 index 65f1d1f..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/2b/d9f035e5480a8914548140f68ce84cec9d9856c21c7d3fc5dfa4feb79a07a6 +++ /dev/null @@ -1,113 +0,0 @@ -I"ě

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3c/13bbdf6fb6bbec0e1f3b40be39a4801a922cf64b75210314aac7cf9be0db2b b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3c/13bbdf6fb6bbec0e1f3b40be39a4801a922cf64b75210314aac7cf9be0db2b deleted file mode 100644 index 22900d8..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/3c/13bbdf6fb6bbec0e1f3b40be39a4801a922cf64b75210314aac7cf9be0db2b +++ /dev/null @@ -1,2 +0,0 @@ -I"7

Stash as a Commit

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/40/adfb1ee077e452dc170bd7b92a9c17a983d99af27b8faa3b673182410c3373 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/40/adfb1ee077e452dc170bd7b92a9c17a983d99af27b8faa3b673182410c3373 deleted file mode 100644 index a7f711a..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/40/adfb1ee077e452dc170bd7b92a9c17a983d99af27b8faa3b673182410c3373 +++ /dev/null @@ -1,2 +0,0 @@ -I"#

Date: October 21, 2023

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4d/9d3c522be2743a367bb33f9ece75799a3503770fe40bf463945647d739bf58 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4d/9d3c522be2743a367bb33f9ece75799a3503770fe40bf463945647d739bf58 deleted file mode 100644 index 6cb7c24..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/4d/9d3c522be2743a367bb33f9ece75799a3503770fe40bf463945647d739bf58 +++ /dev/null @@ -1,2 +0,0 @@ -I"I

Memory Leak in Google Maps

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5c/d51eba3ed8c46180705e75a37551edd03f879739f17aa203d9e79f9ceae612 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5c/d51eba3ed8c46180705e75a37551edd03f879739f17aa203d9e79f9ceae612 deleted file mode 100644 index 22900d8..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/5c/d51eba3ed8c46180705e75a37551edd03f879739f17aa203d9e79f9ceae612 +++ /dev/null @@ -1,2 +0,0 @@ -I"7

Stash as a Commit

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7e/451715385079fa122bdcef0b83f6be9587f8a9851402f4abd1df3f22307d59 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7e/451715385079fa122bdcef0b83f6be9587f8a9851402f4abd1df3f22307d59 deleted file mode 100644 index 14926d5..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/7e/451715385079fa122bdcef0b83f6be9587f8a9851402f4abd1df3f22307d59 +++ /dev/null @@ -1,232 +0,0 @@ -I"Žs

Date: October 21, 2023

- -

Premise

- -
- -

Untitled

- -

We need to render a map like this using google-map-react . But rendering large data points makes the page unresponsive for a while and subsequent actions become slower indicating a memory leak occuring.

- -

Untitled

- -

This is the code used. The only cleanup happening was setting data to null.

- -

The issue

- -
- -

There are three issues present here.

- -
    -
  1. Destroying Google Maps instance never frees up memory. This is a long standing issue within the Google Maps Javascript Library. This meant that after visiting the page, around 600MB of memory was never freed. The issue was first reported in Google’s Bug Tracker in 2011 and the latest comment in that was in February 2023! A 12 year old bug!
  2. -
  3. A line consists of three drawings. A “trip line” should ideally be one stroke, but here we were making three drawings. One Polyline, and two Markers. Somehow, drawing the marker seems to be slower and hogs up the resources.
  4. -
  5. The Polylines could be made into an Overlay. Instead of creating the classes inside the Google Maps, we can make a separate Polyline component and handle all it’s memory issues there.
  6. -
- -

The fix for Google Maps memory leak

- -
- -

Untitled

- -

But we can try to Introduce a function to manually delete all of Google Map’s event listeners.

- -
// Helper function: Removes all event listeners registered with Google's addDomListener function,
-// including from __e3_ properties on target objects.
-function removeAllGoogleListeners(target, event) {
-  var listeners = target["__e3_"];
-  if (!listeners) {
-    console.warn(
-      "Couldn't find property __e3_ containing Google Maps listeners. Perhaps Google updated the Maps SDK?"
-    );
-    return;
-  }
-  var evListeners = listeners[event];
-  if (evListeners) {
-    for (var key in evListeners) {
-      if (evListeners.hasOwnProperty(key)) {
-        google.maps.event.removeListener(evListeners[key]);
-      }
-    }
-  }
-}
-
-// Removes all DOM listeners for the given target and event.
-function removeAllDOMListeners(target, event) {
-  var listeners = target["__listeners_"];
-  if (!listeners || !listeners.length) {
-    return;
-  }
-
-  // Copy to avoid iterating over array that we mutate via removeEventListener
-  var copy = listeners.slice(0);
-  for (var i = 0; i < copy.length; i++) {
-    target.removeEventListener(event, copy[i]);
-  }
-}
-
-// Shim addEventListener to capture and store registered event listeners.
-var addEventListener = EventTarget.prototype.addEventListener;
-EventTarget.prototype.addEventListener = function () {
-  var eventName = arguments[0];
-  var listener = arguments[1];
-  if (!this["__listeners_"]) {
-    this.__listeners_ = {};
-  }
-  var listeners = this.__listeners_;
-  if (!listeners[eventName]) {
-    listeners[eventName] = [];
-  }
-  listeners[eventName].push(listener);
-  return addEventListener.apply(this, arguments);
-};
-var removeEventListener = EventTarget.prototype.removeEventListener;
-EventTarget.prototype.removeEventListener = function () {
-  var eventName = arguments[0];
-  var listener = arguments[1];
-  if (this["__listeners_"] && this.__listeners_[eventName]) {
-    // Loop because the same listener may be added twice with different
-    // options, and because our simple addEventListener shim doesn't
-    // check for duplicates.
-    while (true) {
-      var i = this.__listeners_[eventName].indexOf(listener);
-      if (i === -1) {
-        break;
-      }
-      this.__listeners_[eventName].splice(i, 1);
-    }
-  }
-  return removeEventListener.apply(this, arguments);
-};
-
-// After you remove the Google Map from the DOM, call this function to completely free the object.
-export default function destroyGoogleMaps(window) {
-  removeAllGoogleListeners(window, "blur");
-  removeAllGoogleListeners(window, "resize");
-  removeAllGoogleListeners(document, "click");
-  removeAllGoogleListeners(document, "keydown");
-  removeAllGoogleListeners(document, "keypress");
-  removeAllGoogleListeners(document, "keyup");
-  removeAllGoogleListeners(document, "MSFullscreenChange");
-  removeAllGoogleListeners(document, "fullscreenchange");
-  removeAllGoogleListeners(document, "mozfullscreenchange");
-  removeAllGoogleListeners(document, "webkitfullscreenchange");
-  // ASSUMPTION: No other library registers global resize and scroll event listeners! If this is not true, then you'll need to add logic to avoid removing these.
-  removeAllDOMListeners(window, "resize");
-  removeAllDOMListeners(window, "scroll");
-}
-
- -

Credit to this commenter: https://issuetracker.google.com/issues/35821412#comment53

- -

This resolves the memory issue to an extent.

- -

The flow observed is. Landing page → Page with Trips View → Page with another Google Map → Page without Google Map

- -

The flow observed is. Landing page → Page with Trips View → Page with another Google Map → Page without Google Map

- -

In Prod and Staging, the Page without Google Maps hogs up memory while introducing the memory cleanup in dev shows us that it requires way less memory!

- -

The fix for three drawings

- -
- -

This one happens to be very simple. While creating a Polyline, just specify an icon and set the repeat value as 100%.

- -
new google.maps.Polyline({
-  strokeColor: props.color,
-  geodesic: true,
-  strokeWeight: 3,
-  icons: [
-    {
-      icon: {
-        path: google.maps.SymbolPath.CIRCLE,
-      },
-      repeat: "100%",
-    },
-  ],
-});
-
- -

We can even make the icon a SymbolPath.FORWARD_PATH (Reference: https://developers.google.com/maps/documentation/javascript/reference/marker#SymbolPath) indicating the trip direction as well!

- -

Making the Polylines an Overlay

- -
- -

Now all of the computations happen inside the onGoogleApiLoaded method of google-map-react.

- -

Untitled

- -

First thing, we make this function do nothing but set a state called map. This is for us to later set the PolyLine on to the map.

- -

Polyline.js

- -
import { useState } from "react";
-
-import useDeepCompareEffect from "use-deep-compare-effect";
-
-function pathsDiffer(path1, path2) {
-  if (path1.getLength() != path2.length) return true;
-  for (const [i, val] of path2.entries())
-    if (path1.getAt(i).toJSON() != val) return true;
-  return false;
-}
-
-export default function PolyLine(props) {
-  const [polyline, setPolyline] = useState(null);
-
-  useDeepCompareEffect(() => {
-    // Create polyline after map initialized.
-    if (!polyline && props.map) {
-      setPolyline(
-        new google.maps.Polyline({
-          strokeColor: props.color,
-          geodesic: true,
-          strokeWeight: 3,
-          icons: [
-            {
-              icon: {
-                path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
-              },
-              repeat: "100%",
-            },
-          ],
-        })
-      );
-    }
-
-    // Synchronize map polyline with component props.
-    if (polyline && polyline.getMap() != props.map) polyline.setMap(props.map);
-    if (polyline && pathsDiffer(polyline.getPath(), props.path))
-      polyline.setPath(props.path);
-
-    return () => {
-      // Cleanup: remove line from map
-      if (polyline) polyline.setMap(null);
-    };
-  }, [props, polyline]);
-
-  return null;
-}
-
- -

Now inside the component,

- -

Untitled

- -

Finally, as a sibling to GoogleMapReact we introduce the Polyline component.

- -

Untitled

- -

Final Result

- -
- -

Maps look way more meaningful

- -

Untitled

- -

The memory consumption which went from 500MB to 367MB after memory cleanup, went down to 140MB after removing the marker drawings!

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/36/13dde1c547e9fd654bcc123f71df971bbeee282a701502dc0a02cfe84fbdae b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8e/13f322ff4fcfb30c5802a3788879a3a5db774f299eea1be21ece685805bd7b similarity index 91% rename from .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/36/13dde1c547e9fd654bcc123f71df971bbeee282a701502dc0a02cfe84fbdae rename to .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8e/13f322ff4fcfb30c5802a3788879a3a5db774f299eea1be21ece685805bd7b index 6858d25..e269f42 100644 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/36/13dde1c547e9fd654bcc123f71df971bbeee282a701502dc0a02cfe84fbdae +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/8e/13f322ff4fcfb30c5802a3788879a3a5db774f299eea1be21ece685805bd7b @@ -1,8 +1,4 @@ -I"

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

+I"0

What is a Stash?


@@ -70,7 +66,7 @@ content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 +++++++++++++

Here’s the alternative commit method in Atom.

-
+

What about VS Code?

@@ -90,6 +86,12 @@ content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 +++++++++++++
+

Bonus: If you really want to do it on the command line

+ +
+ +
+

The Advantage


diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/fe1de9876381d5e7e16a4809f3d241b90494f8e7b6c5b5a3f4c15e2524a7f5 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/fe1de9876381d5e7e16a4809f3d241b90494f8e7b6c5b5a3f4c15e2524a7f5 deleted file mode 100644 index 6c55b5d..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/b5/fe1de9876381d5e7e16a4809f3d241b90494f8e7b6c5b5a3f4c15e2524a7f5 +++ /dev/null @@ -1,234 +0,0 @@ -I"ós

Memory Leak in Google Maps

- -

Date: October 21, 2023

- -

Premise

- -
- -

Untitled

- -

We need to render a map like this using google-map-react . But rendering large data points makes the page unresponsive for a while and subsequent actions become slower indicating a memory leak occuring.

- -

Untitled

- -

This is the code used. The only cleanup happening was setting data to null.

- -

The issue

- -
- -

There are three issues present here.

- -
    -
  1. Destroying Google Maps instance never frees up memory. This is a long standing issue within the Google Maps Javascript Library. This meant that after visiting the page, around 600MB of memory was never freed. The issue was first reported in Google’s Bug Tracker in 2011 and the latest comment in that was in February 2023! A 12 year old bug!
  2. -
  3. A line consists of three drawings. A “trip line” should ideally be one stroke, but here we were making three drawings. One Polyline, and two Markers. Somehow, drawing the marker seems to be slower and hogs up the resources.
  4. -
  5. The Polylines could be made into an Overlay. Instead of creating the classes inside the Google Maps, we can make a separate Polyline component and handle all it’s memory issues there.
  6. -
- -

The fix for Google Maps memory leak

- -
- -

Untitled

- -

But we can try to Introduce a function to manually delete all of Google Map’s event listeners.

- -
// Helper function: Removes all event listeners registered with Google's addDomListener function,
-// including from __e3_ properties on target objects.
-function removeAllGoogleListeners(target, event) {
-  var listeners = target["__e3_"];
-  if (!listeners) {
-    console.warn(
-      "Couldn't find property __e3_ containing Google Maps listeners. Perhaps Google updated the Maps SDK?"
-    );
-    return;
-  }
-  var evListeners = listeners[event];
-  if (evListeners) {
-    for (var key in evListeners) {
-      if (evListeners.hasOwnProperty(key)) {
-        google.maps.event.removeListener(evListeners[key]);
-      }
-    }
-  }
-}
-
-// Removes all DOM listeners for the given target and event.
-function removeAllDOMListeners(target, event) {
-  var listeners = target["__listeners_"];
-  if (!listeners || !listeners.length) {
-    return;
-  }
-
-  // Copy to avoid iterating over array that we mutate via removeEventListener
-  var copy = listeners.slice(0);
-  for (var i = 0; i < copy.length; i++) {
-    target.removeEventListener(event, copy[i]);
-  }
-}
-
-// Shim addEventListener to capture and store registered event listeners.
-var addEventListener = EventTarget.prototype.addEventListener;
-EventTarget.prototype.addEventListener = function () {
-  var eventName = arguments[0];
-  var listener = arguments[1];
-  if (!this["__listeners_"]) {
-    this.__listeners_ = {};
-  }
-  var listeners = this.__listeners_;
-  if (!listeners[eventName]) {
-    listeners[eventName] = [];
-  }
-  listeners[eventName].push(listener);
-  return addEventListener.apply(this, arguments);
-};
-var removeEventListener = EventTarget.prototype.removeEventListener;
-EventTarget.prototype.removeEventListener = function () {
-  var eventName = arguments[0];
-  var listener = arguments[1];
-  if (this["__listeners_"] && this.__listeners_[eventName]) {
-    // Loop because the same listener may be added twice with different
-    // options, and because our simple addEventListener shim doesn't
-    // check for duplicates.
-    while (true) {
-      var i = this.__listeners_[eventName].indexOf(listener);
-      if (i === -1) {
-        break;
-      }
-      this.__listeners_[eventName].splice(i, 1);
-    }
-  }
-  return removeEventListener.apply(this, arguments);
-};
-
-// After you remove the Google Map from the DOM, call this function to completely free the object.
-export default function destroyGoogleMaps(window) {
-  removeAllGoogleListeners(window, "blur");
-  removeAllGoogleListeners(window, "resize");
-  removeAllGoogleListeners(document, "click");
-  removeAllGoogleListeners(document, "keydown");
-  removeAllGoogleListeners(document, "keypress");
-  removeAllGoogleListeners(document, "keyup");
-  removeAllGoogleListeners(document, "MSFullscreenChange");
-  removeAllGoogleListeners(document, "fullscreenchange");
-  removeAllGoogleListeners(document, "mozfullscreenchange");
-  removeAllGoogleListeners(document, "webkitfullscreenchange");
-  // ASSUMPTION: No other library registers global resize and scroll event listeners! If this is not true, then you'll need to add logic to avoid removing these.
-  removeAllDOMListeners(window, "resize");
-  removeAllDOMListeners(window, "scroll");
-}
-
- -

Credit to this commenter: https://issuetracker.google.com/issues/35821412#comment53

- -

This resolves the memory issue to an extent.

- -

The flow observed is. Landing page → Page with Trips View → Page with another Google Map → Page without Google Map

- -

The flow observed is. Landing page → Page with Trips View → Page with another Google Map → Page without Google Map

- -

In Prod and Staging, the Page without Google Maps hogs up memory while introducing the memory cleanup in dev shows us that it requires way less memory!

- -

The fix for three drawings

- -
- -

This one happens to be very simple. While creating a Polyline, just specify an icon and set the repeat value as 100%.

- -
new google.maps.Polyline({
-  strokeColor: props.color,
-  geodesic: true,
-  strokeWeight: 3,
-  icons: [
-    {
-      icon: {
-        path: google.maps.SymbolPath.CIRCLE,
-      },
-      repeat: "100%",
-    },
-  ],
-});
-
- -

We can even make the icon a SymbolPath.FORWARD_PATH (Reference: https://developers.google.com/maps/documentation/javascript/reference/marker#SymbolPath) indicating the trip direction as well!

- -

Making the Polylines an Overlay

- -
- -

Now all of the computations happen inside the onGoogleApiLoaded method of google-map-react.

- -

Untitled

- -

First thing, we make this function do nothing but set a state called map. This is for us to later set the PolyLine on to the map.

- -

Polyline.js

- -
import { useState } from "react";
-
-import useDeepCompareEffect from "use-deep-compare-effect";
-
-function pathsDiffer(path1, path2) {
-  if (path1.getLength() != path2.length) return true;
-  for (const [i, val] of path2.entries())
-    if (path1.getAt(i).toJSON() != val) return true;
-  return false;
-}
-
-export default function PolyLine(props) {
-  const [polyline, setPolyline] = useState(null);
-
-  useDeepCompareEffect(() => {
-    // Create polyline after map initialized.
-    if (!polyline && props.map) {
-      setPolyline(
-        new google.maps.Polyline({
-          strokeColor: props.color,
-          geodesic: true,
-          strokeWeight: 3,
-          icons: [
-            {
-              icon: {
-                path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
-              },
-              repeat: "100%",
-            },
-          ],
-        })
-      );
-    }
-
-    // Synchronize map polyline with component props.
-    if (polyline && polyline.getMap() != props.map) polyline.setMap(props.map);
-    if (polyline && pathsDiffer(polyline.getPath(), props.path))
-      polyline.setPath(props.path);
-
-    return () => {
-      // Cleanup: remove line from map
-      if (polyline) polyline.setMap(null);
-    };
-  }, [props, polyline]);
-
-  return null;
-}
-
- -

Now inside the component,

- -

Untitled

- -

Finally, as a sibling to GoogleMapReact we introduce the Polyline component.

- -

Untitled

- -

Final Result

- -
- -

Maps look way more meaningful

- -

Untitled

- -

The memory consumption which went from 500MB to 367MB after memory cleanup, went down to 140MB after removing the marker drawings!

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/5f3f3a4d7547285540fa79dbff68be1208542073d63834d7f2d5e11e2c0ffb b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/5f3f3a4d7547285540fa79dbff68be1208542073d63834d7f2d5e11e2c0ffb deleted file mode 100644 index 6d16107..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/ba/5f3f3a4d7547285540fa79dbff68be1208542073d63834d7f2d5e11e2c0ffb +++ /dev/null @@ -1,113 +0,0 @@ -I"x

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- - - -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/be/f967ca2de758816be2235eb278f7a112163262d67a83e84c1a041b0e687942 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/be/f967ca2de758816be2235eb278f7a112163262d67a83e84c1a041b0e687942 deleted file mode 100644 index bb8ff1f..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/be/f967ca2de758816be2235eb278f7a112163262d67a83e84c1a041b0e687942 +++ /dev/null @@ -1,113 +0,0 @@ -I"

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -
- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e1/bee17f9872776171ebb886683f620b12ef287fff975f8d6b9bfd49e70d6eb8 b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e1/bee17f9872776171ebb886683f620b12ef287fff975f8d6b9bfd49e70d6eb8 deleted file mode 100644 index 671b09f..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e1/bee17f9872776171ebb886683f620b12ef287fff975f8d6b9bfd49e70d6eb8 +++ /dev/null @@ -1,109 +0,0 @@ -I">

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -
- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -
- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/78bbcceb64ade1cdeffe3d38c5a807fcdc2e671ab636c407224d27d183222e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/78bbcceb64ade1cdeffe3d38c5a807fcdc2e671ab636c407224d27d183222e deleted file mode 100644 index 679ac6e..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/fc/78bbcceb64ade1cdeffe3d38c5a807fcdc2e671ab636c407224d27d183222e +++ /dev/null @@ -1,113 +0,0 @@ -I"t

Stash as a Commit

- -

Date: October 31, 2023

- -

What is a Stash?

- -
- -

From Julia Evans’ blog article titled Some miscellaneous git facts

- -
-

👉🏽 **the stash is a bunch of commits**

- -

When I run git stash to stash my changes, I’ve always been a bit confused about where those changes actually went. It turns out that when you run git stash, git makes some commits with your changes and labels them with a reference called stash (in .git/refs/stash).

- -

Let’s stash this blog post and look at the log of the stash reference:

- -
$ git log stash --oneline
-6cb983fe (refs/stash) WIP on main: c6ee55ed wip
-2ff2c273 index on main: c6ee55ed wip
-... some more stuff
-
-
- -

Now we can look at the commit 2ff2c273 to see what it contains:

- -
$ git show 2ff2c273  --stat
-commit 2ff2c273357c94a0087104f776a8dd28ee467769
-Author: Julia Evans <julia@jvns.ca>
-Date:   Fri Oct 20 14:49:20 2023 -0400
-
-   index on main: c6ee55ed wip
-
-content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 ++++++++++++++++++++++++++++++++++++++++
-
-
- -

Unsurprisingly, it contains this blog post. Makes sense!

- -

git stash actually creates 2 separate commits: one for the index, and one for your changes that you haven’t staged yet. I found this kind of heartening because I’ve been working on a tool to snapshot and restore the state of a git repository (that I may or may not ever release) and I came up with a very similar design, so that made me feel better about my choices.

- -

Apparently older commits in the stash are stored in the reflog.

-
- -

Why can’t we just commit instead of stashing?

- -
- -

For those used to the idea of git from command line, this may seem like a strange idea. But if your git workflow is well integrated into your IDE (I must admit, I have only VS Code in mind here), then this is such a good idea.

- -

The Atom UI

- -

I absolutely adored the Atom UI. The best part to me was the three pane design that put File Explorer, Code and Git in view always.

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

The Atom UI with File Explorer, Code Area and Git/Github Panel

- -

This is good because as you went making changes in files, it kept adding a list item in the right side of the screen and you had a general idea how big your changes were becoming. Putting this upfront meant a little extra motivation to go and make experimental changes anywhere which never left your view and you could just go and cherry-pick or discard everything!

- -

Atom Git Pane

- -

Atom Git Pane

- -

The Flow in Atom

- -
- -

Let’s say you’re in feature-branch-1 and you need to switch branches to master. Naturally, you’ll stash your changes in feature-branch-1

- -

Here’s the alternative commit method in Atom.

- -

https://www.loom.com/share/3b5ae799bb104aa5891ed51a92d5f6ca?sid=22e04793-241b-4213-aacd-a82d668dce49

- -

What about VS Code?

- -
- -

VS Code doesn’t come with the same layout by default. It’s for the better and you can have the same Atom-like workflow in VS Code. Just enable a Secondary Side Bar and drag your “Source Control” and “Commits” to the second pane.

- -

Untitled

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

A lot more cluttered than my Atom. But it also does a lot more than Atom!

- -

The Same Flow in VS Code

- -
- -

https://www.loom.com/share/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=386b9b4e-44e3-4eec-80ab-1e5987b35dad

- -

The Advantage

- -
- -

The real advantage is that a stash commit is local to a branch. This is ideal if you’re often working on multiple features and need to stash something to switch branches (often to master to create a new branch). So when you come back you see the stash commit and you’re back where you left it. Sometimes, when a week later when you revisit a branch, remembering that you stashed some code is not clear.

- -

The case for stash

- -
- - - -

References

- -
- -

Julia Evans’ Blog Article: https://jvns.ca/blog/2023/10/20/some-miscellaneous-git-facts/

-:ET \ No newline at end of file diff --git a/_site/404.html b/_site/404.html index 6021f1a..662ea45 100644 --- a/_site/404.html +++ b/_site/404.html @@ -16,7 +16,7 @@ +{"headline":"Rahul Krishna","url":"http://localhost:4000/404.html","description":"Frontend Engineer.","@type":"WebPage","@context":"https://schema.org"} diff --git a/_site/about/index.html b/_site/about/index.html index cf0fd7d..4631ca3 100644 --- a/_site/about/index.html +++ b/_site/about/index.html @@ -1,93 +1,305 @@ + - + - -About | Rahul Krishna - - - - - - - - - - - - + + About | Rahul Krishna + + + + + + + + + + + + + - +
+
+
-
-

Hello! I’m a software engineer based in Bangalore, India with a focus on frontend development. Currently, I work with Bridgestone to develop mobility solutions that improve driver safety across their US fleets.

+
+

About

+
-

During my free time, I’m working on Kindle2Notion, a software utility that simplifies the process of exporting Kindle notes to Notion.

+
+

Hello! I’m a software engineer based in Bangalore, India with a focus on frontend development. Currently, I + work with Bridgestone to develop mobility solutions that improve driver safety across their US fleets.

-
+

During my free time, I’m working on Kindle2Notion, a software utility that simplifies the process of + exporting Kindle notes to Notion.

-
+
- -
+ - + \ No newline at end of file diff --git a/_site/blog/2023/06/07/react-tips-for-future.html b/_site/blog/2023/06/07/react-tips-for-future.html index 257d3a2..94ce489 100644 --- a/_site/blog/2023/06/07/react-tips-for-future.html +++ b/_site/blog/2023/06/07/react-tips-for-future.html @@ -18,7 +18,7 @@ +{"headline":"React Tips for Future","dateModified":"2023-06-07T09:16:44+05:30","datePublished":"2023-06-07T09:16:44+05:30","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/blog/2023/06/07/react-tips-for-future.html"},"url":"http://localhost:4000/blog/2023/06/07/react-tips-for-future.html","description":"1. Do not over-use useEffect","@type":"BlogPosting","@context":"https://schema.org"} diff --git a/_site/blog/2023/10/21/memory-leak-in-google-maps.html b/_site/blog/2023/10/21/memory-leak-in-google-maps.html index edc55c2..fcd234d 100644 --- a/_site/blog/2023/10/21/memory-leak-in-google-maps.html +++ b/_site/blog/2023/10/21/memory-leak-in-google-maps.html @@ -18,7 +18,7 @@ +{"headline":"Memory Leak in Google Maps","dateModified":"2023-10-21T00:48:44+05:30","datePublished":"2023-10-21T00:48:44+05:30","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/blog/2023/10/21/memory-leak-in-google-maps.html"},"url":"http://localhost:4000/blog/2023/10/21/memory-leak-in-google-maps.html","description":"Premise","@type":"BlogPosting","@context":"https://schema.org"} diff --git a/_site/blog/2023/10/31/stash-as-a-commit.html b/_site/blog/2023/10/31/stash-as-a-commit.html index 119a3dd..5f12d58 100644 --- a/_site/blog/2023/10/31/stash-as-a-commit.html +++ b/_site/blog/2023/10/31/stash-as-a-commit.html @@ -18,7 +18,7 @@ +{"headline":"Stash as a Commit","dateModified":"2023-10-31T17:35:44+05:30","datePublished":"2023-10-31T17:35:44+05:30","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/blog/2023/10/31/stash-as-a-commit.html"},"url":"http://localhost:4000/blog/2023/10/31/stash-as-a-commit.html","description":"What is a Stash?","@type":"BlogPosting","@context":"https://schema.org"} @@ -123,7 +123,7 @@

The Flow in Atom

Here’s the alternative commit method in Atom.

-
+

What about VS Code?

@@ -143,6 +143,12 @@

The Same Flow in VS Code

+

Bonus: If you really want to do it on the command line

+ +
+ +
+

The Advantage


diff --git a/_site/feed.xml b/_site/feed.xml index e9711b0..eeee823 100644 --- a/_site/feed.xml +++ b/_site/feed.xml @@ -1,4 +1,4 @@ -Jekyll2023-10-31T18:10:56+05:30http://localhost:4000/feed.xmlRahul KrishnaFrontend Engineer.Stash as a Commit2023-10-31T17:35:44+05:302023-10-31T17:35:44+05:30http://localhost:4000/blog/2023/10/31/stash-as-a-commit<h3 id="what-is-a-stash">What is a Stash?</h3> +Jekyll2023-11-10T11:33:12+05:30http://localhost:4000/feed.xmlRahul KrishnaFrontend Engineer.Stash as a Commit2023-10-31T17:35:44+05:302023-10-31T17:35:44+05:30http://localhost:4000/blog/2023/10/31/stash-as-a-commit<h3 id="what-is-a-stash">What is a Stash?</h3> <hr /> @@ -66,7 +66,7 @@ content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 +++++++++++++ <p>Here’s the alternative commit method in Atom.</p> -<div style="position: relative; padding-bottom: 60.30150753768844%; height: 0;"><iframe src="https://www.loom.com/embed/1823d6c60e0646d5a8f26022267ea0cf?sid=6c6af21e-9e4d-46e5-aca9-1359e96a78b3" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div> +<div style="position: relative; padding-bottom: 60.30150753768844%; height: 0;"><iframe src="https://www.loom.com/embed/3b5ae799bb104aa5891ed51a92d5f6ca?sid=55db5932-acf4-4c6f-89c3-b1eca8610ee7" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div> <h3 id="what-about-vs-code">What about VS Code?</h3> @@ -86,6 +86,12 @@ content/post/2023-10-20-some-miscellaneous-git-facts.markdown | 40 +++++++++++++ <div style="position: relative; padding-bottom: 58.91980360065466%; height: 0;"><iframe src="https://www.loom.com/embed/a1fa5c8bebd74fb889ae26dbbfcf63ee?sid=e00e01da-5fc6-4b6a-95eb-a9c3912e3e95" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div> +<h3 id="bonus-if-you-really-want-to-do-it-on-the-command-line">Bonus: If you really want to do it on the command line</h3> + +<hr /> + +<div style="position: relative; padding-bottom: 74.34052757793765%; height: 0;"><iframe src="https://www.loom.com/embed/70c3d90ac8a64c2aaae010394174a8bb?sid=5674d81a-c4e8-4438-aaea-ec7200ae4212" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div> + <h3 id="the-advantage">The Advantage</h3> <hr /> diff --git a/_site/index.html b/_site/index.html index 27199d8..31a69f4 100644 --- a/_site/index.html +++ b/_site/index.html @@ -16,7 +16,7 @@ +{"headline":"Rahul Krishna","url":"http://localhost:4000/","description":"Frontend Engineer.","@type":"WebSite","name":"Rahul Krishna","@context":"https://schema.org"}