Procházet zdrojové kódy

Merge branch 'develop'

master
Rohan Verma před 6 roky
rodič
revize
c0fba264ec
100 změnil soubory, kde provedl 424 přidání a 81 odebrání
  1. +3
    -1
      .gitignore
  2. +10
    -2
      assets/css/custom.css
  3. +6
    -1
      config.toml
  4. +35
    -0
      content/about.md
  5. +0
    -0
      content/blog/2010/2010-09-28-some-cool-js.md
  6. +0
    -0
      content/blog/2010/2010-09-28-wcg.md
  7. +0
    -0
      content/blog/2011/2011-04-23-redirection.md
  8. +0
    -0
      content/blog/2016/2016-01-27-making-presenations-using-markdown.md
  9. +0
    -0
      content/blog/2016/2016-01-28-point-about-floating-points.md
  10. +0
    -0
      content/blog/2016/2016-01-29-twitter-bots-using-tweepy.md
  11. +0
    -0
      content/blog/2016/2016-03-22-blip.md
  12. +0
    -0
      content/blog/2016/2016-04-15-foodify-app-hacknsit-2016.md
  13. +0
    -0
      content/blog/2016/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md
  14. +0
    -0
      content/blog/2016/2016-05-10-participating-in-google-summer-of-code-2016.md
  15. +0
    -0
      content/blog/2016/2016-05-20-building-planet-gsoc.md
  16. +0
    -0
      content/blog/2016/2016-05-30-installing-apache-allura-on-digital-ocean.md
  17. +0
    -0
      content/blog/2016/2016-06-20-vim-as-your-daily-log-notebook.md
  18. +0
    -0
      content/blog/2016/2016-08-04-to-draft-or-not-to-draft.md
  19. +0
    -0
      content/blog/2016/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md
  20. +0
    -0
      content/blog/2016/2016-08-06-topological-sort-for-problems-using-dag.md
  21. +0
    -0
      content/blog/2016/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md
  22. +0
    -0
      content/blog/2016/2016-08-09-apache-allura-gsoc-2016-summary.md
  23. +0
    -0
      content/blog/2016/2016-10-20-hello-wordpress.md
  24. +0
    -0
      content/blog/2016/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md
  25. +0
    -0
      content/blog/2016/2016-10-31-just-installed-a-new-theme-for-the-blog.md
  26. +0
    -0
      content/blog/2016/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md
  27. +0
    -0
      content/blog/2016/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md
  28. +0
    -0
      content/blog/2016/2016-11-07-a-tip-on-using-fsck-when-you-are.md
  29. +0
    -0
      content/blog/2016/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md
  30. +0
    -0
      content/blog/2016/2016-11-09-some-journal-publications-require-you-to-put-author.md
  31. +0
    -0
      content/blog/2016/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md
  32. +0
    -0
      content/blog/2016/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md
  33. +0
    -0
      content/blog/2016/2016-11-14-day-1-apachecon-big-data-seville-2016.md
  34. +0
    -0
      content/blog/2016/2016-11-15-day-2-apachecon-big-data-seville.md
  35. +0
    -0
      content/blog/2016/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md
  36. +0
    -0
      content/blog/2016/2016-11-17-day-4-apachecon-and-the-apache-way.md
  37. +0
    -0
      content/blog/2016/2016-11-18-day-5-the-final-day-of-apachecon.md
  38. +0
    -0
      content/blog/2016/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md
  39. +0
    -0
      content/blog/2016/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md
  40. +0
    -0
      content/blog/2016/2016-11-29-octoshark-hackathon.md
  41. +0
    -0
      content/blog/2016/2016-12-12-sorting-out-my-todo-list-for-the-next.md
  42. +0
    -0
      content/blog/2016/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md
  43. +0
    -0
      content/blog/2016/2016-12-14-at-last-i-am-now-on-fedora-25.md
  44. +0
    -0
      content/blog/2016/2016-12-19-if-you-are-using-os-rename-src-dest.md
  45. +0
    -0
      content/blog/2017/2017-01-07-how-to-sign-pgp-keys-using-gpg.md
  46. +0
    -0
      content/blog/2017/2017-01-10-notes-on-regex.md
  47. +0
    -0
      content/blog/2017/2017-01-12-checking-if-a-number-is-prime-using-regex.md
  48. +0
    -0
      content/blog/2017/2017-01-12-snu-data-limit.md
  49. +0
    -0
      content/blog/2017/2017-01-25-today-my-phone-was-acting-strange-as-it.md
  50. +0
    -0
      content/blog/2017/2017-02-04-i-used-to-use-the-l-flag.md
  51. +0
    -0
      content/blog/2017/2017-02-05-elitebnc.md
  52. +0
    -0
      content/blog/2017/2017-02-07-working-with-j2me-on-linux-in-2017.md
  53. +0
    -0
      content/blog/2017/2017-02-09-vorstellungsreprasentanz.md
  54. +0
    -0
      content/blog/2017/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md
  55. +0
    -0
      content/blog/2017/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md
  56. +0
    -0
      content/blog/2017/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md
  57. +0
    -0
      content/blog/2017/2017-05-06-rendezvous-with-a-reflection-screenplay.md
  58. +0
    -0
      content/blog/2017/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md
  59. +0
    -0
      content/blog/2017/2017-06-26-take-out-a-moment-and-think-are-you.md
  60. +0
    -0
      content/blog/2017/2017-07-27-216.md
  61. +0
    -0
      content/blog/2017/2017-09-20-torogo.md
  62. +0
    -0
      content/blog/2017/2017-10-11-yumex-dnf-is-locked.md
  63. +0
    -0
      content/blog/2017/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md
  64. +0
    -0
      content/blog/2017/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md
  65. +0
    -0
      content/blog/2017/2017-11-11-vocabulary-of-odissi.md
  66. +0
    -0
      content/blog/2017/2017-11-30-emotive-adsense-project.md
  67. +0
    -0
      content/blog/2017/2017-12-19-what-thefuck-is-wrong-with.md
  68. +0
    -0
      content/blog/2017/2017-12-20-setting-up-latex-on-spacemacs.md
  69. +0
    -0
      content/blog/2017/2017-12-20-switching-to-spacemacs-based-on.md
  70. +0
    -0
      content/blog/2017/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md
  71. +0
    -0
      content/blog/2017/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md
  72. +0
    -0
      content/blog/2018/2018-02-23-featured-on-googles-instagram-instagram.md
  73. +0
    -0
      content/blog/2018/2018-03-18-extract-filenames-without-their-extensions.md
  74. +0
    -0
      content/blog/2018/2018-03-20-today-i-integrated-the-wordpress.md
  75. +0
    -0
      content/blog/2018/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md
  76. +0
    -0
      content/blog/2018/2018-05-11-my-personal-opinion-about-learning.md
  77. +0
    -0
      content/blog/2018/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md
  78. +0
    -0
      content/blog/2018/2018-06-07-emacs-starts-a-bit-slow.md
  79. +0
    -0
      content/blog/2018/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md
  80. +0
    -0
      content/blog/2018/2018-08-01-rewriting-lyric-api-in-golang.md
  81. +0
    -0
      content/blog/2018/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md
  82. +0
    -0
      content/blog/2018/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md
  83. +0
    -0
      content/blog/2018/2018-10-14-convolutional-neural-network-basics.md
  84. +0
    -0
      content/blog/2018/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md
  85. +0
    -0
      content/blog/2018/interview_with_google.md
  86. +0
    -0
      content/blog/2019/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md
  87. +0
    -0
      content/blog/2019/2019-02-03-bcb-presentation.md
  88. +0
    -0
      content/blog/2019/2019-02-17-progress-update-1-upilink.md
  89. +0
    -0
      content/blog/2019/2019-02-24-progress-update-2-upilink.md
  90. +0
    -0
      content/blog/2019/2019-03-17-a-review-of-the-siempo-launcher.md
  91. +0
    -0
      content/blog/2019/2019-08-04-docker-containers-to-build-archaic-projects.md
  92. +0
    -0
      content/blog/2019/2019-08-04.md
  93. +1
    -0
      content/blog/2019/2019-10-10-facebook-birthday.md
  94. +1
    -0
      content/blog/2019/2019-10-25-paisavasool-hackinout-2019.md
  95. +61
    -27
      content/blog/2019/2019-11-05-docker-gopls.md
  96. +70
    -0
      content/blog/2019/2019-11-15-hugo-group-by-year.md
  97. +231
    -0
      content/blog/2019/2019-11-15-selfhosted-netlify.md
  98. +0
    -1
      layouts/_default/baseof.html
  99. +6
    -49
      layouts/index.html
  100. +0
    -0
      layouts/partials/body/darkmode.html

+ 3
- 1
.gitignore Zobrazit soubor

@@ -9,4 +9,6 @@ Desktop.ini
$RECYCLE.BIN/

# OSX
.DS_Store
.DS_Store

.vscode

+ 10
- 2
assets/css/custom.css Zobrazit soubor

@@ -1,6 +1,6 @@
dark-mode-toggle {
--dark-mode-toggle-dark-icon: url("/wp-content/moon.png");
--dark-mode-toggle-dark-icon: url("/wp-content/moon.png");
--dark-mode-toggle-dark-icon: url("/wp-content/sun.png");
--dark-mode-toggle-light-icon: url("/wp-content/moon.png");
}

body.light {
@@ -39,10 +39,18 @@ nav a {
color: #422eff;
border-bottom: 1px solid #00ff9c;
}
.dark a {
color: rgb(82, 174, 255);
border-bottom: 1px solid rgb(0, 204, 125);
}
.light a:hover {
color: #000;
background-color: #00ff9c;
}
.dark a:hover {
color: #333;
background-color: #00ff9c;
}
.muted, .help-block {
opacity: 0.70;
}

+ 6
- 1
config.toml Zobrazit soubor

@@ -44,8 +44,13 @@ footnoteReturnLinkContents = "↩" # Provides a nicer footnote return link
name = "Blog"
identifier = "blog"
url = "/blog"
weight = 0
weight = 2

[[menu.main]]
name = "About"
identifier = "about"
url = "/about"
weight = 3

[[menu.utility]]
name = "@rhnvrm"

+ 35
- 0
content/about.md Zobrazit soubor

@@ -0,0 +1,35 @@
## About

### Work
I’m currently working as a Software Developer at
<a class="no-underline text-grey-dark" href="https://zerodha.com/products">Zerodha Tech</a>
where I am writing Golang, Python and a bit of Javascript to
build fintech products used at scale everyday.

Before Zerodha, I interned with Dell Technologies as a
Software Engineering Intern and graduated in the Summer of 2018 from
Shiv Nadar University, Dadri, India.

At Dell, I was part of a team that was building a
new end-to-end microservice based product using Golang (and Python) to solve an
invoice-to-order matching problem which had an effect of increasing
the cash flows for Dell and customer facing invoice accuracy
via last mile automation.

I have
also worked remotely during my participation in Google Summer
of Code in 2016 and contributed to the Open Source Apache
Allura Project that powers SourceForge.com.

Out of interest and curiosity, I have (little) experience with
Machine Learning and AI through my pursuit of a Machine Learning
Nanodegree which I earned through a MOOC curated by Udacity
which I undertook in the summer of 2017.

### Personal
I am from New Delhi, India and am currently
based in Bengaluru, India. I write code for a living,
and often write code as a hobby, or to automate the
little things. You might find me lurking on online
message boards, online games and IRC as rhnvrm (an alias I took
long ago).

content/blog/2010-09-28-some-cool-js.md → content/blog/2010/2010-09-28-some-cool-js.md Zobrazit soubor


content/blog/2010-09-28-wcg.md → content/blog/2010/2010-09-28-wcg.md Zobrazit soubor


content/blog/2011-04-23-redirection.md → content/blog/2011/2011-04-23-redirection.md Zobrazit soubor


content/blog/2016-01-27-making-presenations-using-markdown.md → content/blog/2016/2016-01-27-making-presenations-using-markdown.md Zobrazit soubor


content/blog/2016-01-28-point-about-floating-points.md → content/blog/2016/2016-01-28-point-about-floating-points.md Zobrazit soubor


content/blog/2016-01-29-twitter-bots-using-tweepy.md → content/blog/2016/2016-01-29-twitter-bots-using-tweepy.md Zobrazit soubor


content/blog/2016-03-22-blip.md → content/blog/2016/2016-03-22-blip.md Zobrazit soubor


content/blog/2016-04-15-foodify-app-hacknsit-2016.md → content/blog/2016/2016-04-15-foodify-app-hacknsit-2016.md Zobrazit soubor


content/blog/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md → content/blog/2016/2016-05-07-adding-support-for-vector-instructions-to-8051-architecture.md Zobrazit soubor


content/blog/2016-05-10-participating-in-google-summer-of-code-2016.md → content/blog/2016/2016-05-10-participating-in-google-summer-of-code-2016.md Zobrazit soubor


content/blog/2016-05-20-building-planet-gsoc.md → content/blog/2016/2016-05-20-building-planet-gsoc.md Zobrazit soubor


content/blog/2016-05-30-installing-apache-allura-on-digital-ocean.md → content/blog/2016/2016-05-30-installing-apache-allura-on-digital-ocean.md Zobrazit soubor


content/blog/2016-06-20-vim-as-your-daily-log-notebook.md → content/blog/2016/2016-06-20-vim-as-your-daily-log-notebook.md Zobrazit soubor


content/blog/2016-08-04-to-draft-or-not-to-draft.md → content/blog/2016/2016-08-04-to-draft-or-not-to-draft.md Zobrazit soubor


content/blog/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md → content/blog/2016/2016-08-05-what-is-apache-allura-and-why-is-it-relevant-to-developers.md Zobrazit soubor


content/blog/2016-08-06-topological-sort-for-problems-using-dag.md → content/blog/2016/2016-08-06-topological-sort-for-problems-using-dag.md Zobrazit soubor


content/blog/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md → content/blog/2016/2016-08-07-share-wifi-via-ethernet-on-gnome-3-20.md Zobrazit soubor


content/blog/2016-08-09-apache-allura-gsoc-2016-summary.md → content/blog/2016/2016-08-09-apache-allura-gsoc-2016-summary.md Zobrazit soubor


content/blog/2016-10-20-hello-wordpress.md → content/blog/2016/2016-10-20-hello-wordpress.md Zobrazit soubor


content/blog/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md → content/blog/2016/2016-10-22-labeled-tweet-generator-and-galaxy-image-classifier-featured-in-sirajologys-youtube-videos.md Zobrazit soubor


content/blog/2016-10-31-just-installed-a-new-theme-for-the-blog.md → content/blog/2016/2016-10-31-just-installed-a-new-theme-for-the-blog.md Zobrazit soubor


content/blog/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md → content/blog/2016/2016-11-01-todays-git-tip-in-gitconfig-url-gitgithub.md Zobrazit soubor


content/blog/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md → content/blog/2016/2016-11-02-i-wonder-what-linus-torvalds-view-is-about.md Zobrazit soubor


content/blog/2016-11-07-a-tip-on-using-fsck-when-you-are.md → content/blog/2016/2016-11-07-a-tip-on-using-fsck-when-you-are.md Zobrazit soubor


content/blog/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md → content/blog/2016/2016-11-08-feeling-excited-about-attending-apachecon-big-data-and.md Zobrazit soubor


content/blog/2016-11-09-some-journal-publications-require-you-to-put-author.md → content/blog/2016/2016-11-09-some-journal-publications-require-you-to-put-author.md Zobrazit soubor


content/blog/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md → content/blog/2016/2016-11-12-reached-the-melia-sevilla-spain-tonight-pretty-excited.md Zobrazit soubor


content/blog/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md → content/blog/2016/2016-11-13-toured-seville-today-thanks-to-https-www-feelthecitytours.md Zobrazit soubor


content/blog/2016-11-14-day-1-apachecon-big-data-seville-2016.md → content/blog/2016/2016-11-14-day-1-apachecon-big-data-seville-2016.md Zobrazit soubor


content/blog/2016-11-15-day-2-apachecon-big-data-seville.md → content/blog/2016/2016-11-15-day-2-apachecon-big-data-seville.md Zobrazit soubor


content/blog/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md → content/blog/2016/2016-11-16-day-3-apachecon-barcamp-and-apachecon.md Zobrazit soubor


content/blog/2016-11-17-day-4-apachecon-and-the-apache-way.md → content/blog/2016/2016-11-17-day-4-apachecon-and-the-apache-way.md Zobrazit soubor


content/blog/2016-11-18-day-5-the-final-day-of-apachecon.md → content/blog/2016/2016-11-18-day-5-the-final-day-of-apachecon.md Zobrazit soubor


content/blog/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md → content/blog/2016/2016-11-23-getting-ready-for-updating-my-system-to-fedora.md Zobrazit soubor


content/blog/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md → content/blog/2016/2016-11-25-i-recently-corrupted-my-zsh-history-and-was.md Zobrazit soubor


content/blog/2016-11-29-octoshark-hackathon.md → content/blog/2016/2016-11-29-octoshark-hackathon.md Zobrazit soubor


content/blog/2016-12-12-sorting-out-my-todo-list-for-the-next.md → content/blog/2016/2016-12-12-sorting-out-my-todo-list-for-the-next.md Zobrazit soubor


content/blog/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md → content/blog/2016/2016-12-13-understanding-the-undertones-of-political-thought-within-the-politically-agnostic-foss-movement.md Zobrazit soubor


content/blog/2016-12-14-at-last-i-am-now-on-fedora-25.md → content/blog/2016/2016-12-14-at-last-i-am-now-on-fedora-25.md Zobrazit soubor


content/blog/2016-12-19-if-you-are-using-os-rename-src-dest.md → content/blog/2016/2016-12-19-if-you-are-using-os-rename-src-dest.md Zobrazit soubor


content/blog/2017-01-07-how-to-sign-pgp-keys-using-gpg.md → content/blog/2017/2017-01-07-how-to-sign-pgp-keys-using-gpg.md Zobrazit soubor


content/blog/2017-01-10-notes-on-regex.md → content/blog/2017/2017-01-10-notes-on-regex.md Zobrazit soubor


content/blog/2017-01-12-checking-if-a-number-is-prime-using-regex.md → content/blog/2017/2017-01-12-checking-if-a-number-is-prime-using-regex.md Zobrazit soubor


content/blog/2017-01-12-snu-data-limit.md → content/blog/2017/2017-01-12-snu-data-limit.md Zobrazit soubor


content/blog/2017-01-25-today-my-phone-was-acting-strange-as-it.md → content/blog/2017/2017-01-25-today-my-phone-was-acting-strange-as-it.md Zobrazit soubor


content/blog/2017-02-04-i-used-to-use-the-l-flag.md → content/blog/2017/2017-02-04-i-used-to-use-the-l-flag.md Zobrazit soubor


content/blog/2017-02-05-elitebnc.md → content/blog/2017/2017-02-05-elitebnc.md Zobrazit soubor


content/blog/2017-02-07-working-with-j2me-on-linux-in-2017.md → content/blog/2017/2017-02-07-working-with-j2me-on-linux-in-2017.md Zobrazit soubor


content/blog/2017-02-09-vorstellungsreprasentanz.md → content/blog/2017/2017-02-09-vorstellungsreprasentanz.md Zobrazit soubor


content/blog/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md → content/blog/2017/2017-02-14-survey-paper-on-security-in-wireless-sensor-networks.md Zobrazit soubor


content/blog/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md → content/blog/2017/2017-03-12-just-discovered-xfce4-has-an-inbuilt-drop-down.md Zobrazit soubor


content/blog/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md → content/blog/2017/2017-04-20-retrofitting-led-lamps-into-smart-lamps.md Zobrazit soubor


content/blog/2017-05-06-rendezvous-with-a-reflection-screenplay.md → content/blog/2017/2017-05-06-rendezvous-with-a-reflection-screenplay.md Zobrazit soubor


content/blog/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md → content/blog/2017/2017-05-20-xfce4-keyboard-shortcuts-for-clementine.md Zobrazit soubor


content/blog/2017-06-26-take-out-a-moment-and-think-are-you.md → content/blog/2017/2017-06-26-take-out-a-moment-and-think-are-you.md Zobrazit soubor


content/blog/2017-07-27-216.md → content/blog/2017/2017-07-27-216.md Zobrazit soubor


content/blog/2017-09-20-torogo.md → content/blog/2017/2017-09-20-torogo.md Zobrazit soubor


content/blog/2017-10-11-yumex-dnf-is-locked.md → content/blog/2017/2017-10-11-yumex-dnf-is-locked.md Zobrazit soubor


content/blog/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md → content/blog/2017/2017-10-16-was-codification-of-odissi-successful-in-capturing-the-true-essence-of-the-dance-as-it-was-prevalent-or-even-as-it-was-performed​-​in-​​the-​​ancient.md Zobrazit soubor


content/blog/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md → content/blog/2017/2017-10-28-the-male-and-female-dress-of-odissi-dance-an-comment-on-the-literature-on-the-web.md Zobrazit soubor


content/blog/2017-11-11-vocabulary-of-odissi.md → content/blog/2017/2017-11-11-vocabulary-of-odissi.md Zobrazit soubor


content/blog/2017-11-30-emotive-adsense-project.md → content/blog/2017/2017-11-30-emotive-adsense-project.md Zobrazit soubor


content/blog/2017-12-19-what-thefuck-is-wrong-with.md → content/blog/2017/2017-12-19-what-thefuck-is-wrong-with.md Zobrazit soubor


content/blog/2017-12-20-setting-up-latex-on-spacemacs.md → content/blog/2017/2017-12-20-setting-up-latex-on-spacemacs.md Zobrazit soubor


content/blog/2017-12-20-switching-to-spacemacs-based-on.md → content/blog/2017/2017-12-20-switching-to-spacemacs-based-on.md Zobrazit soubor


content/blog/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md → content/blog/2017/2017-12-21-deep-learning-through-the-lens-of-the-information-plane.md Zobrazit soubor


content/blog/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md → content/blog/2017/2017-12-21-setting-up-python-on-spacemacs-and-using-pyenv-to-use-python3.md Zobrazit soubor


content/blog/2018-02-23-featured-on-googles-instagram-instagram.md → content/blog/2018/2018-02-23-featured-on-googles-instagram-instagram.md Zobrazit soubor


content/blog/2018-03-18-extract-filenames-without-their-extensions.md → content/blog/2018/2018-03-18-extract-filenames-without-their-extensions.md Zobrazit soubor


content/blog/2018-03-20-today-i-integrated-the-wordpress.md → content/blog/2018/2018-03-20-today-i-integrated-the-wordpress.md Zobrazit soubor


content/blog/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md → content/blog/2018/2018-05-11-genie-the-voice-enabled-coding-companion-winner-dell-intern-hackathon.md Zobrazit soubor


content/blog/2018-05-11-my-personal-opinion-about-learning.md → content/blog/2018/2018-05-11-my-personal-opinion-about-learning.md Zobrazit soubor


content/blog/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md → content/blog/2018/2018-05-16-reviving-an-old-samsung-n150-netbook-and-making-it-a-solid-dev-environment.md Zobrazit soubor


content/blog/2018-06-07-emacs-starts-a-bit-slow.md → content/blog/2018/2018-06-07-emacs-starts-a-bit-slow.md Zobrazit soubor


content/blog/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md → content/blog/2018/2018-07-30-functional-options-for-testing-without-mocks-in-golang.md Zobrazit soubor


content/blog/2018-08-01-rewriting-lyric-api-in-golang.md → content/blog/2018/2018-08-01-rewriting-lyric-api-in-golang.md Zobrazit soubor


content/blog/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md → content/blog/2018/2018-08-20-automate-fast-download-of-a-large-files-through-ftp.md Zobrazit soubor


content/blog/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md → content/blog/2018/2018-09-25-whistle-project-winner-ethindia-2018-hackathon.md Zobrazit soubor


content/blog/2018-10-14-convolutional-neural-network-basics.md → content/blog/2018/2018-10-14-convolutional-neural-network-basics.md Zobrazit soubor


content/blog/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md → content/blog/2018/2018-11-19-streaming-audio-from-linux-to-android-using-pulseaudio-over-lan.md Zobrazit soubor


content/blog/interview_with_google.md → content/blog/2018/interview_with_google.md Zobrazit soubor


content/blog/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md → content/blog/2019/2019-01-08-setting-so_reuseport-and-similar-socket-options-in-go-1-11.md Zobrazit soubor


content/blog/2019-02-03-bcb-presentation.md → content/blog/2019/2019-02-03-bcb-presentation.md Zobrazit soubor


content/blog/2019-02-17-progress-update-1-upilink.md → content/blog/2019/2019-02-17-progress-update-1-upilink.md Zobrazit soubor


content/blog/2019-02-24-progress-update-2-upilink.md → content/blog/2019/2019-02-24-progress-update-2-upilink.md Zobrazit soubor


content/blog/2019-03-17-a-review-of-the-siempo-launcher.md → content/blog/2019/2019-03-17-a-review-of-the-siempo-launcher.md Zobrazit soubor


content/blog/2019-08-04-docker-containers-to-build-archaic-projects.md → content/blog/2019/2019-08-04-docker-containers-to-build-archaic-projects.md Zobrazit soubor


content/blog/2019-08-04.md → content/blog/2019/2019-08-04.md Zobrazit soubor


content/blog/2019-10-10-facebook-birthday.md → content/blog/2019/2019-10-10-facebook-birthday.md Zobrazit soubor

@@ -3,6 +3,7 @@ title = "Facebook Birthday List to ICS file"
date = 2019-10-11T01:03:03+05:30
draft = false
categories = ["notes"]
tags = ["digital wellbeing", "python"]
type = "post"
url = "blog/2019/10/10/facebook-birthday"
author = "Rohan Verma"

content/blog/2019-10-25-paisavasool-hackinout-2019.md → content/blog/2019/2019-10-25-paisavasool-hackinout-2019.md Zobrazit soubor

@@ -3,6 +3,7 @@ title = "PaisaVasool - HackInOut 2019"
date = 2019-10-25T15:30:03+05:30
draft = false
categories = ["projects"]
tags = ["fintech", "hackathon"]
type = "post"
url = "blog/2019/10/25/paisavasool-hackinout-2019"
author = "Rohan Verma"

content/blog/2019-11-05-docker-gopls.md → content/blog/2019/2019-11-05-docker-gopls.md Zobrazit soubor

@@ -2,7 +2,8 @@
title = "Containerized development workflow using remote gopls server"
date = 2019-11-05T15:30:03+05:30
draft = false
categories = ["golang"]
tags = ["golang", "docker"]
categories = ["golang", "notes"]
type = "post"
url = "blog/2019/11/05/containerized-dev-using-remote-gopls"
author = "Rohan Verma"
@@ -36,33 +37,37 @@ Let us look at the Dockerfile for this system.

```Dockerfile
FROM ubuntu:xenial AS builder
RUN apt-get update
# Install system dependencies that we might need
RUN apt-get install -y gcc g++
RUN apt-get update && \
apt-get install -y gcc g++ libssl-dev cmake wget libpcre3 libpcre3-dev git

# Install Depencies like Go and Swig in our container.
WORKDIR /tmp
# Install Go
RUN wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
RUN tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz
# Install Swig
RUN wget http://prdownloads.sourceforge.net/swig/swig-4.0.1.tar.gz
RUN tar -zxvf swig-4.0.1.tar.gz
RUN cd /tmp/swig-4.0.1 && ./configure && make && make install

# Create user
RUN useradd -m -r -u 1000 myuser
RUN groupmod -g 1000 myuser

# Replicate/fake the host system tree
RUN mkdir -p /home/myuser/code/go/myhostdir/myproject
RUN chown -R myuser:myuser /home/myuser/code/go/myhostdir/myproject

# Install Go.
RUN wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz

# Install Swig.
RUN wget http://prdownloads.sourceforge.net/swig/swig-4.0.1.tar.gz && \
tar -zxvf swig-4.0.1.tar.gz && \
cd /tmp/swig-4.0.1 && ./configure && make && make install

ARG MY_USER_ID
ENV MY_USER_ID ${MY_USER_ID}

ARG MY_PWD
ENV MY_PWD ${MY_PWD}

RUN mkdir -p $MY_PWD

RUN useradd -r -m -u $MY_USER_ID myuser
RUN groupmod -g $MY_USER_ID myuser
USER myuser

WORKDIR /home/myuser/code/go/myhostdir/myproject
ENV PATH="/usr/local/go/bin:${MY_PWD}/go/bin:${PATH}"
RUN GOPROXY=https://proxy.golang.org GO111MODULE=on go get golang.org/x/tools/[email protected]
WORKDIR $MY_PWD

RUN GO111MODULE=on go get golang.org/x/tools/gopls@latest
CMD gopls -listen=":7050"
CMD /home/myuser/go/bin/gopls -listen=":7050"
```

Firstly, we install all the dependencies and then create
@@ -77,13 +82,28 @@ inside the container.
Finally, we install gopls in the container and then start it in the container
with the `-listen=":7050"` flag.

We will now build the image.

```bash
mkdir -p go

docker build \
--build-arg MY_PWD=${PWD} \
--build-arg=MY_USER_ID=${MY_USER_ID} \
-t myapp:latest .
```

Note, we also create a directory called `go` which will be the mock GOPATH
inside the container.

Now we can expose this port to our host machine.

```bash
docker run -d --name "myproject" -u `id -u` -p 7050:7050 \
-v /home/myuser/code/go/myhostdir/myproject:/home/myuser/code/go/myhostdir/ \
myproject myproject:latest
docker run -d --name "myapp" \
-u `id -u ${USER}` \
-e "GOPATH=${PWD}/go" \
-p 7050:7050 \
-v ${PWD}:${PWD} myapp:latest
```

Notice, that we also mount the host source in the container with the same path,
@@ -96,8 +116,22 @@ flags we use for the language server to connect to the remote gopls server.
gopls -remote "localhost:7050"
```

For VSCode, you can add the following to your `settings.json`

```json
{
"go.languageServerFlags": [
"-remote=localhost:7050",
"-v"
],
"go.useLanguageServer": true,
"go.gopath": "go"
}
```

After adding this flag, you will now be able to edit your source with all the
added benefits that come with a language server.
added benefits that come with a language server like autocompletion and
autoformatting.

Since this is an experimental feature, it might break (a lot). Do let me know
in the comments if this was helpful for you.

+ 70
- 0
content/blog/2019/2019-11-15-hugo-group-by-year.md Zobrazit soubor

@@ -0,0 +1,70 @@
+++
title = "Creating archive pages grouped by year in Hugo"
date = 2019-11-15T15:30:03+05:30
draft = false
tags = ["hugo", "blog", "golang"]
categories = ["tutorials"]
type = "post"
url = "blog/2019/11/15/archive-pages-group-by-year-hugo"
author = "Rohan Verma"
+++

I was on the hunt to find out how to organize my [blog](/blog_list) and
[project](/project) archive pages by year in Hugo. After being unable to find
any easy solutions I decided I would sit down and write the go template to
render these pages myself. The idea was simple, iterate over the list divided
by year into sub lists and render tables, but it turned out to be a bit tricky.

Here is the template, hope it is useful for someone who wants to have a similar
page.

```html
{{ define "title" -}}
Blog List | {{ .Site.Title }}
{{- end }}
{{ define "header" }}
{{ partial "masthead.html" . }}
{{ end }}
{{ define "main" }}
<header>
<h1>{{ .Title }}</h1>
</header>
<section>
{{ $prev := 3000}}
{{range .Site.RegularPages}}
{{if .Date}}
{{if gt $prev (.Date.Format "2006")}}
{{ if ne $prev 3000}}
</table>
{{ end }}
<h2>{{ .Date.Format "2006" }}</h2>
<table class="all-posts">
{{end}}
<tr>
<td>{{.Date.Format "02 Jan"}}</td>
<td><a href="{{.Permalink}}">{{.Title}}</a></td>
</tr>
{{ $prev = .Date.Format "2006"}}
{{end}}
{{end}}
</table>
</section>

{{ end }}
{{ define "footer" }}
{{ partial "powered-by.html" . }}
{{ end }}
```

The above template loops through all the blogs (having a date) and renders
multiple tables
which are grouped by the year. We render `h2` tags with the year if the previous
year is greater than the current year. Followed
by a `<table>` tag having each next blog rendered as a row in the table. The
previous seen date is updated for the next iteration. In each iteration, before
rendering the table tag we check if the previous date was greater than the date
or`3000` (an arbitrarily high year) which we set as the previous seen year
before starting the loop, to decide if we want to close the table tag. In the
next iteration, the previous year will be the same as the current year, and so
we can continue to render rows.

+ 231
- 0
content/blog/2019/2019-11-15-selfhosted-netlify.md Zobrazit soubor

@@ -0,0 +1,231 @@
+++
title = "Self hosted Netlify using docker-compose, gitea, and drone-ci"
date = 2019-11-15T15:30:03+05:30
draft = true
tags = ["golang", "docker", "self hosted"]
categories = ["tutorials"]
type = "post"
url = "blog/2019/11/15/selfhosted-netlify"
author = "Rohan Verma"
+++

I had been using netlify to deploy a few of my static sites. The process for
deployment is seamless and all you need to do is push to master. Pushing to
the develop branch or creating a pull request on github creates a mirror
with a unique URL which can be used to preview the site.

It worked well, but I often feel that I will eventually be tied down or stuck
to the service. One day the pricing will change or the service will
disappear. Also, for my small static sites, the features it offers are too much.

I also wanted to setup CI/CD for my other projects, and setting up my own CI/CD
pipeline and migrating static sites would be a good easy step to start.

This article is derived from [Self-hosting with Docker](https://blog.ssdnodes.com/blog/self-hosting-handbook/) by [Joel Hans](https://blog.ssdnodes.com/blog/author/joel/). I might skip a few details, which are covered there.

```yaml
version: '2'

services:

proxy:
image: jwilder/nginx-proxy
container_name: proxy
restart: unless-stopped
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- certs:/etc/nginx/certs:rw
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- ./uploadsize.conf:/etc/nginx/conf.d/uploadsize.conf:ro
ports:
- "80:80"
- "443:443"
networks:
- "default"
- "proxy-tier"

proxy-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt
restart: unless-stopped
environment:
- NGINX_PROXY_CONTAINER=proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes_from:
- "proxy"
depends_on:
- "proxy"
networks:
- "default"
- "proxy-tier"

portainer:
image: portainer/portainer
container_name: portainer
restart: always
environment:
- VIRTUAL_HOST=docker.rohanverma.net
- LETSENCRYPT_HOST=docker.rohanverma.net
- [email protected]
volumes:
- ./portainer/:/data
- /var/run/docker.sock:/var/run/docker.sock
privileged: true
ports:
- "9000:9000"

gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- VIRTUAL_HOST=gitea.rohanverma.net
- LETSENCRYPT_HOST=gitea.rohanverma.net
- [email protected]
- VIRTUAL_PORT=3000
- ROOT_URL=https://gitea.rohanverma.net
- DOMAIN=gitea.rohanverma.net
- PROTOCOL=http
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea:/data
ports:
- "5000:3000"
- "222:22"
networks:
- proxy-tier
- default

drone:
container_name: drone
image: drone/drone:latest
restart: always
environment:
- DRONE_GITEA_SERVER=https://gitea.rohanverma.net
- DRONE_GIT_ALWAYS_AUTH=false
- DRONE_RUNNER_CAPACITY=3
- DRONE_SERVER_HOST=drone.rohanverma.net
- DRONE_SERVER_PROTO=https
- DRONE_TLS_AUTOCERT=false
- DRONE_RPC_SECRET=xxxxxxxx
- DRONE_GITEA_CLIENT_ID=xxxxxxxxxxxxxxxxx
- DRONE_GITEA_CLIENT_SECRET=xxxxxxxxxxxxxxxxxx
- VIRTUAL_HOST=drone.rohanverma.net
- VIRTUAL_PORT=80
- DRONE_USER_CREATE=username:rhnvrm,admin:true
- DRONE_DEBUG=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./drone:/data
privileged: true
ports:
- "5151:80"
networks:
- default

drone-agent:
container_name: drone-agent
image: drone/agent:latest
command: agent
restart: always
depends_on:
- drone
privileged: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_RPC_SERVER=https://drone.rohanverma.net
- DRONE_RPC_SECRET=xxxxxxxx
- DRONE_RUNNER_CAPACITY=3
- DRONE_RUNNER_NAME="local"
networks:
- default

rohanvermanet:
container_name: rohanvermanet
build:
dockerfile: Dockerfile
context: ../apps/rohanverma.net
ports:
- "8080:80"
environment:
- VIRTUAL_HOST=rohanverma.net
- LETSENCRYPT_HOST=rohanverma.net
- [email protected]

nextrohanvermanet:
container_name: nextrohanvermanet
build:
dockerfile: Dockerfile
context: ../apps/next.rohanverma.net
ports:
- "8079:80"
environment:
- VIRTUAL_HOST=next.rohanverma.net
- LETSENCRYPT_HOST=next.rohanverma.net
- [email protected]

volumes:
certs:
vhost.d:
html:

networks:
proxy-tier:

```

The drone.yml file

```yml
---
kind: pipeline
type: docker
name: default

steps:
- name: ssh commands for rohanverma.net
image: appleboy/drone-ssh
when:
branch:
- master
settings:
host: 159.89.175.2
username: deploy
port: 22
key:
from_secret: ssh_key
script_stop: true
script:
- cd /home/rhnvrm/apps/rohanverma.net
- git fetch origin
- git checkout origin/master
- cd /home/rhnvrm/proxy
- docker-compose build rohanvermanet
- docker-compose up -d rohanvermanet

- name: ssh commands for next.rohanverma.net
image: appleboy/drone-ssh
when:
branch:
- develop
settings:
host: 159.89.175.2
username: deploy
port: 22
key:
from_secret: ssh_key
script_stop: true
script:
- cd /home/rhnvrm/apps/next.rohanverma.net
- git fetch origin
- git checkout origin/develop
- cd /home/rhnvrm/proxy
- docker-compose build nextrohanvermanet
- docker-compose up -d nextrohanvermanet
```

+ 0
- 1
layouts/_default/baseof.html Zobrazit soubor

@@ -57,7 +57,6 @@
{{ $hackcss_mode := .Site.Params.hackcss.mode | default "hack" }}
{{ $hackcss_palette := .Site.Params.hackcss.palette | default "dark" }}
<body class="{{ if ne $hackcss_disabled true }}{{ $hackcss_mode }} {{ $hackcss_palette }} main container{{ end }}">
{{ partial "body/darkmode.html" . }}
<header>{{ block "header" . }}{{ end }}</header>
<main>{{ block "main" . }}{{ end }}</main>
<footer>

+ 6
- 49
layouts/index.html Zobrazit soubor

@@ -17,49 +17,6 @@
</div>
</div>

<br>
<h2>About</h2>

<h3>Work</h3>
I’m currently working as a Software Developer at
<a class="no-underline text-grey-dark" href="https://zerodha.com/products">Zerodha Tech</a>
where I am writing Golang, Python and a bit of Javascript to
build fintech products used at scale everyday.

<br><br>

Before Zerodha, I interned with Dell Technologies as a
Software Engineering Intern and graduated in the Summer of 2018 from
Shiv Nadar University, Dadri, India.
<br><br>

At Dell, I was part of a team that was building a
new end-to-end microservice based product using Golang (and Python) to solve an
invoice-to-order matching problem which had an effect of increasing
the cash flows for Dell and customer facing invoice accuracy
via last mile automation.
<br><br>
I have
also worked remotely during my participation in Google Summer
of Code in 2016 and contributed to the Open Source Apache
Allura Project that powers SourceForge.com.
<br><br>
Out of interest and curiosity, I have (little) experience with
Machine Learning and AI through my pursuit of a Machine Learning
Nanodegree which I earned through a MOOC curated by Udacity
which I undertook in the summer of 2017.
<br><br>

<h3>Personal</h3>
I am from New Delhi, India and am currently
based in Bengaluru, India. I write code for a living,
and often write code as a hobby, or to automate the
little things. You might find me lurking on online
message boards, online games and IRC as rhnvrm (an alias I took
long ago).

<br><br>

<h2>Social</h2>
@@ -106,6 +63,10 @@

<h2>Blog</h2>

My blog is also available via <a href="/blog/index.xml">[RSS]</a>

<br><br>

You can read my <a class="no-underline text-grey-dark" href="/blog">blog</a> where
I try to write about what I am doing and things I find interesting.
I have organized my blog using categories
@@ -127,22 +88,18 @@
<br><br>

<section>
<b>categories</b>: <br>
<b><a href="/categories">categories</a></b>: <br>
{{range ($.Site.GetPage "taxonomyTerm" "categories").Pages }}
<a href="{{.Permalink}}">{{lower .Title}}</a>
{{end}}
<br><br>
<b>tags</b>: <br>
<b><a href="/tags">tags</a></b>: <br>
{{range ($.Site.GetPage "taxonomyTerm" "tags").Pages }}
<a href="{{.Permalink}}">{{lower .Title}}</a>
{{end}}
</section>

<br>
My blog is also available via <a href="/blog/index.xml">[RSS]</a>

<br><br>




+ 0
- 0
layouts/partials/body/darkmode.html Zobrazit soubor


Některé soubory nejsou zobrazny, neboť je v této revizi změněno mnoho souborů

Načítá se…
Zrušit
Uložit