From b81634a238b57b6798b7335e043033e2d009fa8e Mon Sep 17 00:00:00 2001 From: alefisico Date: Tue, 17 Dec 2024 15:40:04 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20alefisic?= =?UTF-8?q?o/alefisico.github.io@e406d2010d4ad62b2687d6ba7ae285f2857657ff?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- ECHEP/index.html | 4 +- _pages/dropdown/index.html | 2 +- assets/json/resume.json | 2 +- assets/jupyter/blog.ipynb.html | 2 +- blog/2015/code/index.html | 68 -- blog/2015/disqus-comments/index.html | 1 - blog/2015/formatting-and-links/index.html | 1 - blog/2015/images/index.html | 1 - blog/2015/index.html | 1 - blog/2015/math/index.html | 1 - blog/2020/index.html | 1 - blog/2020/twitter/index.html | 1 - blog/2021/diagrams/index.html | 13 - blog/2021/distill/index.html | 82 -- blog/2021/index.html | 1 - blog/2022/giscus-comments/index.html | 1 - blog/2022/index.html | 2 +- blog/2022/redirect/index.html | 1 - blog/2023/audios/index.html | 1 - blog/2023/custom-blockquotes/index.html | 74 -- blog/2023/index.html | 1 - blog/2023/jupyter-notebook/index.html | 10 - blog/2023/post-bibliography/index.html | 1 - .../2023/sidebar-table-of-contents/index.html | 3 - blog/2023/table-of-contents/index.html | 3 - blog/2023/tables/index.html | 33 - blog/2023/tikzjax/index.html | 7 - blog/2023/videos/index.html | 1 - blog/2024/advanced-images/index.html | 1 - blog/2024/chartjs/index.html | 159 --- blog/2024/code-diff/index.html | 445 --------- blog/2024/echarts/index.html | 47 - blog/2024/geojson-map/index.html | 75 -- blog/2024/index.html | 2 +- blog/2024/post-citation/index.html | 8 - blog/2024/pseudocode/index.html | 53 - blog/2024/simple_story/index.html | 1 + blog/2024/tabs/index.html | 25 - blog/2024/typograms/index.html | 55 - blog/2024/vega-lite/index.html | 83 -- blog/category/bio-posts/index.html | 1 + blog/category/external-services/index.html | 1 - blog/category/sample-posts/index.html | 1 - blog/index.html | 2 +- blog/page/2/index.html | 2 +- blog/page/3/index.html | 1 - blog/page/4/index.html | 1 - blog/page/5/index.html | 1 - blog/page/6/index.html | 1 - blog/page/7/index.html | 1 - blog/page/8/index.html | 1 - blog/tag/audios/index.html | 1 - blog/tag/bib/index.html | 1 - blog/tag/bio/index.html | 1 + blog/tag/blockquotes/index.html | 1 - blog/tag/charts/index.html | 1 - blog/tag/citation/index.html | 1 - blog/tag/code/index.html | 1 - blog/tag/comments/index.html | 1 - blog/tag/diagrams/index.html | 1 - blog/tag/distill/index.html | 1 - blog/tag/formatting/index.html | 1 - blog/tag/images/index.html | 1 - blog/tag/jupyter/index.html | 1 - blog/tag/links/index.html | 1 - blog/tag/maps/index.html | 1 - blog/tag/math/index.html | 1 - blog/tag/sidebar/index.html | 1 - blog/tag/tables/index.html | 1 - blog/tag/toc/index.html | 1 - blog/tag/videos/index.html | 1 - cv/index.html | 2 +- feed.xml | 936 +----------------- index.html | 2 +- news/announcement_1/index.html | 2 +- news/announcement_2/index.html | 2 +- news/announcement_3/index.html | 2 +- news/index.html | 2 +- people/index.html | 2 +- portfolio/index.html | 2 +- projects/blog/index.html | 2 +- projects/index.html | 2 +- .../livingmylifebehind_project/index.html | 2 +- projects/soccermatics_project/index.html | 2 +- .../index.html | 2 +- projects/teaching_ETH_Spring2021/index.html | 2 +- .../valueplayeractions_project/index.html | 2 +- publications/index.html | 4 +- repositories/index.html | 2 +- resume/index.html | 1 + sitemap.xml | 2 +- teaching/index.html | 2 +- teaching/jet_exercises/index.html | 2 +- teaching/reana/index.html | 2 +- 95 files changed, 37 insertions(+), 2252 deletions(-) delete mode 100644 blog/2015/code/index.html delete mode 100644 blog/2015/disqus-comments/index.html delete mode 100644 blog/2015/formatting-and-links/index.html delete mode 100644 blog/2015/images/index.html delete mode 100644 blog/2015/index.html delete mode 100644 blog/2015/math/index.html delete mode 100644 blog/2020/index.html delete mode 100644 blog/2020/twitter/index.html delete mode 100644 blog/2021/diagrams/index.html delete mode 100644 blog/2021/distill/index.html delete mode 100644 blog/2021/index.html delete mode 100644 blog/2022/giscus-comments/index.html delete mode 100644 blog/2022/redirect/index.html delete mode 100644 blog/2023/audios/index.html delete mode 100644 blog/2023/custom-blockquotes/index.html delete mode 100644 blog/2023/index.html delete mode 100644 blog/2023/jupyter-notebook/index.html delete mode 100644 blog/2023/post-bibliography/index.html delete mode 100644 blog/2023/sidebar-table-of-contents/index.html delete mode 100644 blog/2023/table-of-contents/index.html delete mode 100644 blog/2023/tables/index.html delete mode 100644 blog/2023/tikzjax/index.html delete mode 100644 blog/2023/videos/index.html delete mode 100644 blog/2024/advanced-images/index.html delete mode 100644 blog/2024/chartjs/index.html delete mode 100644 blog/2024/code-diff/index.html delete mode 100644 blog/2024/echarts/index.html delete mode 100644 blog/2024/geojson-map/index.html delete mode 100644 blog/2024/post-citation/index.html delete mode 100644 blog/2024/pseudocode/index.html create mode 100644 blog/2024/simple_story/index.html delete mode 100644 blog/2024/tabs/index.html delete mode 100644 blog/2024/typograms/index.html delete mode 100644 blog/2024/vega-lite/index.html create mode 100644 blog/category/bio-posts/index.html delete mode 100644 blog/category/external-services/index.html delete mode 100644 blog/category/sample-posts/index.html delete mode 100644 blog/page/3/index.html delete mode 100644 blog/page/4/index.html delete mode 100644 blog/page/5/index.html delete mode 100644 blog/page/6/index.html delete mode 100644 blog/page/7/index.html delete mode 100644 blog/page/8/index.html delete mode 100644 blog/tag/audios/index.html delete mode 100644 blog/tag/bib/index.html create mode 100644 blog/tag/bio/index.html delete mode 100644 blog/tag/blockquotes/index.html delete mode 100644 blog/tag/charts/index.html delete mode 100644 blog/tag/citation/index.html delete mode 100644 blog/tag/code/index.html delete mode 100644 blog/tag/comments/index.html delete mode 100644 blog/tag/diagrams/index.html delete mode 100644 blog/tag/distill/index.html delete mode 100644 blog/tag/formatting/index.html delete mode 100644 blog/tag/images/index.html delete mode 100644 blog/tag/jupyter/index.html delete mode 100644 blog/tag/links/index.html delete mode 100644 blog/tag/maps/index.html delete mode 100644 blog/tag/math/index.html delete mode 100644 blog/tag/sidebar/index.html delete mode 100644 blog/tag/tables/index.html delete mode 100644 blog/tag/toc/index.html delete mode 100644 blog/tag/videos/index.html create mode 100644 resume/index.html diff --git a/404.html b/404.html index 31fdb8e..d480351 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ - Page not found | Alejandro Gomez Espinosa Ph.D.

Page not found

Looks like there has been a mistake. Nothing exists here.

You will be redirected to the main page within 3 seconds. If not redirected, please go back to the home page.

\ No newline at end of file + Page not found | Alejandro Gomez Espinosa Ph.D.

Page not found

Looks like there has been a mistake. Nothing exists here.

You will be redirected to the main page within 3 seconds. If not redirected, please go back to the home page.

\ No newline at end of file diff --git a/ECHEP/index.html b/ECHEP/index.html index 9db2759..912fbc0 100644 --- a/ECHEP/index.html +++ b/ECHEP/index.html @@ -21,7 +21,7 @@ ] } } -

Ecuadorian High Energy Physics Group

A set of quick instructions to get started

Introduction to the basics

If you need a few tutorials/material to start with some basic languages/programs, here there is a (non-complete and ongoing) list of suggested tutorials:

  • Git: Carpentry tutorials for the basics of how to use github/gitlab. This is useful to keep your code in a online repository.
  • Python: Carpentry tutorial for python and how to create plots using python tools.
  • Root: THE software used in collider experiments. There are some examples in C++ and python.
  • Jupyter Notebook: Jupyter notebooks are the way of creating code from your browser. This is the current standard in industry and it is growing quickly in research.
  • Kaggle: the “social network” for data analysts. It is a set of public datasets and jupyter notebooks. Highly recommended.
  • Kaggle learn: a set of tutorials in many tools used in data analysis in general. These tutorials are not focused in physics, but for data analyst’s.
  • Google colab: your jupyter notebooks in your google account.

Introduction to CMS Physics

CMS has a series of schools with introductory topics for newcomers. A list of the latest schools:

  • CMS Induction Course: A set of talks introducing all the main aspects of CMS. From physics, management, detector, etc.
  • CMSDAS: CMS Data Analysis School is a set of talks (with videos) focused on the main aspects of data analysis in CMS. Highly recommended. Here one can find examples, with working code, of analysis made at CMS.

Introduction to CERN/CMS Computing basics

Lxplus machine

Certificate

VOMS

Machine Learning (ML) for High Energy Physics

As a first introduction to what CMS is doing with ML, it is strongly recommended to follow the CMSDAS tutorial. Link.

I suggest you to watch the lecture and follow the slides.

As a first step towards getting used to ML tools, I suggest you to use the CMSDAS material in the CERN SWAN. SWAN is a hub created at CERN with many tools needed for CERN data analysis. For more information about SWAN follow this link. Contact me if you dont have access to SWAN.

In SWAN you will be asked about the environment you need to create, at this moment you can use the default settings and click on Start my Session.

drawing

Once you access your SWAN projects, you can include directly github repositories by click on the button next to the plus button.

drawing

There you can add the github link https://github.com/FNALLPC/machine-learning-das.git from the repository. After this, you will have all the jupiter notebooks in SWAN ready to run. You must start with the 0-setup-libraries.ipynb notebook, which it will create the environment you need for the rest of the notebooks.

Jupyter notebooks are a wonderful tool to teach and to learn coding. However, since you have working code there, it is easy just to run it once and do not understand what the code is doing. I strongly suggest you to take your time to see what the example is doing. Literally play as much as you can with it.

Some known issues

3.1-dense-pytorch.ipynb

This notebook is optional, you can continue to notebook 4 without loosing any major information. If you have a problem with import torch, you need to modify the first cell. From:

!{sys.executable} -m pip install torch torchvision root_pandas --user
+      

Ecuadorian High Energy Physics Group

A set of quick instructions to get started

Introduction to the basics

If you need a few tutorials/material to start with some basic languages/programs, here there is a (non-complete and ongoing) list of suggested tutorials:

  • Git: Carpentry tutorials for the basics of how to use github/gitlab. This is useful to keep your code in a online repository.
  • Python: Carpentry tutorial for python and how to create plots using python tools.
  • Root: THE software used in collider experiments. There are some examples in C++ and python.
  • Jupyter Notebook: Jupyter notebooks are the way of creating code from your browser. This is the current standard in industry and it is growing quickly in research.
  • Kaggle: the “social network” for data analysts. It is a set of public datasets and jupyter notebooks. Highly recommended.
  • Kaggle learn: a set of tutorials in many tools used in data analysis in general. These tutorials are not focused in physics, but for data analyst’s.
  • Google colab: your jupyter notebooks in your google account.

Introduction to CMS Physics

CMS has a series of schools with introductory topics for newcomers. A list of the latest schools:

  • CMS Induction Course: A set of talks introducing all the main aspects of CMS. From physics, management, detector, etc.
  • CMSDAS: CMS Data Analysis School is a set of talks (with videos) focused on the main aspects of data analysis in CMS. Highly recommended. Here one can find examples, with working code, of analysis made at CMS.

Introduction to CERN/CMS Computing basics

Lxplus machine

Certificate

VOMS

Machine Learning (ML) for High Energy Physics

As a first introduction to what CMS is doing with ML, it is strongly recommended to follow the CMSDAS tutorial. Link.

I suggest you to watch the lecture and follow the slides.

As a first step towards getting used to ML tools, I suggest you to use the CMSDAS material in the CERN SWAN. SWAN is a hub created at CERN with many tools needed for CERN data analysis. For more information about SWAN follow this link. Contact me if you dont have access to SWAN.

In SWAN you will be asked about the environment you need to create, at this moment you can use the default settings and click on Start my Session.

drawing

Once you access your SWAN projects, you can include directly github repositories by click on the button next to the plus button.

drawing

There you can add the github link https://github.com/FNALLPC/machine-learning-das.git from the repository. After this, you will have all the jupiter notebooks in SWAN ready to run. You must start with the 0-setup-libraries.ipynb notebook, which it will create the environment you need for the rest of the notebooks.

Jupyter notebooks are a wonderful tool to teach and to learn coding. However, since you have working code there, it is easy just to run it once and do not understand what the code is doing. I strongly suggest you to take your time to see what the example is doing. Literally play as much as you can with it.

Some known issues

3.1-dense-pytorch.ipynb

This notebook is optional, you can continue to notebook 4 without loosing any major information. If you have a problem with import torch, you need to modify the first cell. From:

!{sys.executable} -m pip install torch torchvision root_pandas --user
 

to

!{sys.executable} -m pip install torch --user
 

Then you can run it without problems.

3.2-dense-bayesian-optimization.ipynb

This notebook relies on the skopt package, which is recommended to use with python3. The current environment has python2.7. We can fix this issue, but for now it is not necessary.

4-preprocessing.ipynb

Notebook restarts after running

This only means that you might need to change your environment. Go back to your main SWAN folder and in the top right, click on the three dots. There, find the option change configuration, which it will bring you back to the settings. In my test, it work perfectly with 16 Gb.

Downloading files

In this notebook, you need to access some files that exist only in the CERN storage area. For that you need to set your certificate in lxplus. If you have never installed your certificate in lxplus, please follow this instructions.

Then, in lxplus, run:

voms-proxy-init -rfc -voms cms --valid 168:00
 

it will print a message containing some information and a line that looks like this:

Created proxy in /tmp/x509up_u99999.
@@ -33,4 +33,4 @@
 else: print("os.environ['X509_USER_PROXY'] ",os.environ['X509_USER_PROXY'])
 os.environ['X509_CERT_DIR'] = '/cvmfs/cms.cern.ch/grid/etc/grid-security/certificates'
 os.environ['X509_VOMS_DIR'] = '/cvmfs/cms.cern.ch/grid/etc/grid-security/vomsdir'
-

where X and USER follows the same notation as before.

Once you properly modify this line, you can run it once because it will download many files needed and it will take a lot of time.

If you have any technical problem, dont hesitate on contacting me on mattermost.

More to come

Useful literature

© Copyright 2024 Alejandro Gomez Espinosa Ph.D.. Powered by Jekyll with al-folio theme.
\ No newline at end of file +

where X and USER follows the same notation as before.

Once you properly modify this line, you can run it once because it will download many files needed and it will take a lot of time.

If you have any technical problem, dont hesitate on contacting me on mattermost.

More to come

Useful literature

\ No newline at end of file diff --git a/_pages/dropdown/index.html b/_pages/dropdown/index.html index db18a38..66dfd8a 100644 --- a/_pages/dropdown/index.html +++ b/_pages/dropdown/index.html @@ -1 +1 @@ - submenus | Alejandro Gomez Espinosa Ph.D.

submenus

\ No newline at end of file + submenus | Alejandro Gomez Espinosa Ph.D.

submenus

\ No newline at end of file diff --git a/assets/json/resume.json b/assets/json/resume.json index a8102d2..4d4f5f5 100644 --- a/assets/json/resume.json +++ b/assets/json/resume.json @@ -1 +1 @@ -{"basics":{"name":"Alejandro Gomez Espinosa","label":"Experimental Particle Physicist","image":"assets/img/AlejandroGomezEspinosaCMS.jpg","email":"alejandro.gomez@cern.ch","phone":"","url":"https://alefisico.github.io/","summary":"Ecuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets and di-Higgs searches. I am also interested in workflow orchestration and continuous integration tools.","location":{"address":"","postalCode":"15219","city":"Pittsburgh","countryCode":"US","region":"Pennsylvania"},"profiles":[{"network":"LinkedIn","username":"alejandro-gomez-espinosa","url":"https://www.linkedin.com/in/alejandro-gomez-espinosa/"}]},"work":[{"name":"Carnegie Mellon University","position":"Postdoctoral Research Associate","url":"https://www.cmu.edu/physics/index.html","startDate":"2023-010-01","summary":"Studying the self-interaction of the Higgs boson in the di-Higgs production channel. Research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel. Additionally, working on workflow orchestration tools and analysis reproducibility. Advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA","highlights":["Di-Higgs self-interaction","Four b-quark decay channel","Workflow orchestration","Continuous integration"]},{"name":"Institute for Particle and Astrophysics, ETH-Zurich","position":"Postdoctoral Researcher","url":"https://wallny-group.phys.ethz.ch/","startDate":"2018-04-01","endDate":"2023-10-01","summary":"Lead the measurements for the ttH production in the H(bb) channel using Run II data from CMS, particularly in the boosted regime. Additionally leading the measurements of jet substructure observables in different high transverse momentum jet environments. Moreover, I have significant contributions in commissioning and calibration of boosted taggers for heavy resonances and pileup mitigation techniques at high trigger level for Run III","highlights":["ttHbb measurement","Jet substructure measurements","Boosted taggers commissioning","Pileup mitigation techniques"]}],"education":[{"institution":"Rutgers, The State University of New Jersey","location":"New Brunskwick, NJ","url":"https://physics.rutgers.edu/","area":"Experimental Particle Physics","studyType":"PhD","startDate":"2012-09-01","endDate":"2018-04-01","courses":["Experimental Particle Physics"]},{"institution":"Escuela Politecnica Nacional","location":"Quito","url":"https://physics.rutgers.edu/","area":"Bachelor of Physics","studyType":"Bachelor","startDate":"2006-09-01","endDate":"2012-09-01","courses":["Physics"]}],"awards":[{"title":"Nobel Prize in Physics","date":"1921-11-01","awarder":"Royal Swedish Academy of Sciences","url":"https://www.nobelprize.org/prizes/physics/1921/einstein/biographical/","summary":"The Nobel Prizes are five separate prizes that, according to Alfred Nobel's will of 1895, are awarded to 'those who, during the preceding year, have conferred the greatest benefit to humankind.'"}],"certificates":[{"name":"Machine Learning","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-location-dot"},{"name":"Quantum Computing","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-tag"},{"name":"Quantum Information","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-envelope"},{"name":"Quantum Cryptography","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-hashtag"},{"name":"Quantum Communication","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-calendar"},{"name":"Quantum Teleportation","date":"2018-01-01","issuer":"Stanford University","url":"https://example.com","icon":"fa-solid fa-clipboard-check"}],"publications":[{"name":"Zur Elektrody/namik bewegter Körper","publisher":"Annalen der Physik","releaseDate":"1905-06-30","url":"https://en.wikisource.org/wiki/Translation:On_the_Electrodynamics_of_Moving_Bodies","summary":"It concerned an interpretation of the Michelson–Morley experiment and the properties of light and time. Special relativity incorporates the principle that the speed of light is the same for all inertial observers regardless of the state of motion of the source."},{"name":"Über einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt","publisher":"Annalen der Physik","releaseDate":"1905-03-18","url":"https://de.wikisource.org/wiki/Über_einen_die_Erzeugung_und_Verwandlung_des_Lichtes_betreffenden_heuristischen_Gesichtspunkt","summary":"In the second paper, he applied the quantum theory to light to explain the photoelectric effect. In particular, he used the idea of light quanta (photons) to explain experimental results, but stressed the importance of the experimental results. The importance of his work on the photoelectric effect earned him the Nobel Prize in Physics in 1921."},{"name":"Die Grundlage der allgemeinen Relativitätstheorie","publisher":"Annalen der Physik","releaseDate":"1916-03-20","url":"https://de.wikisource.org/wiki/Die_Grundlage_der_allgemeinen_Relativitätstheorie","summary":"The publication of the theory of general relativity made him internationally famous. He was professor of physics at the universities of Zurich (1909–1911) and Prague (1911–1912), before he returned to ETH Zurich (1912–1914)."}],"skills":[{"name":"Physics","level":"Master","icon":"fa-solid fa-hashtag","keywords":["Quantum Mechanics","Quantum Computing","Quantum Information","Quantum Cryptography","Quantum Communication","Quantum Teleportation"]}],"languages":[{"language":"Spanish","fluency":"Native speaker","icon":""},{"language":"English","fluency":"Fluent","icon":""}],"interests":[{"name":"Physics","icon":"fa-solid fa-tag","keywords":["Jet Physics","Di-Higgs Physics"]}],"projects":[{"name":"Quantum Computing","summary":"Quantum computing is the use of quantum-mechanical phenomena such as superposition and entanglement to perform computation. Computers that perform quantum computations are known as quantum computers.","highlights":["Quantum Teleportation","Quantum Cryptography"],"startDate":"2018-01-01","endDate":"2018-01-01","url":"https://example.com"}]} \ No newline at end of file +{"basics":{"name":"Alejandro Gomez Espinosa","label":"Experimental Particle Physicist","image":"assets/img/AlejandroGomezEspinosaCMS.jpg","email":"alejandro.gomez@cern.ch","phone":"","url":"https://alefisico.github.io/","summary":"Ecuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets and di-Higgs searches. I am also interested in workflow orchestration and continuous integration tools.","location":{"address":"","postalCode":"15219","city":"Pittsburgh","countryCode":"US","region":"Pennsylvania"},"profiles":[{"network":"LinkedIn","username":"alejandro-gomez-espinosa","url":"https://www.linkedin.com/in/alejandro-gomez-espinosa/"}]},"work":[{"name":"Carnegie Mellon University","position":"Postdoctoral Research Associate","url":"https://www.cmu.edu/physics/index.html","startDate":"2023-010-01","summary":"Studying the self-interaction of the Higgs boson in the di-Higgs production channel. Research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel. Additionally, working on workflow orchestration tools and analysis reproducibility. Advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA","highlights":["Di-Higgs self-interaction","Four b-quark decay channel","Workflow orchestration","Continuous integration"]},{"name":"Institute for Particle and Astrophysics, ETH-Zurich","position":"Postdoctoral Researcher","url":"https://wallny-group.phys.ethz.ch/","startDate":"2018-04-01","endDate":"2023-10-01","summary":"Lead the measurements for the ttH production in the H(bb) channel using Run II data from CMS, particularly in the boosted regime. Additionally leading the measurements of jet substructure observables in different high transverse momentum jet environments. Moreover, I have significant contributions in commissioning and calibration of boosted taggers for heavy resonances and pileup mitigation techniques at high trigger level for Run III","highlights":["ttHbb measurement","Jet substructure measurements","Boosted taggers commissioning","Pileup mitigation techniques"]}],"education":[{"institution":"Rutgers, The State University of New Jersey","location":"New Brunskwick, NJ","url":"https://physics.rutgers.edu/","area":"Experimental Particle Physics","studyType":"PhD","startDate":"2012-09-01","endDate":"2018-04-01","courses":["Experimental Particle Physics"]},{"institution":"Escuela Politecnica Nacional","location":"Quito","url":"https://physics.rutgers.edu/","area":"Bachelor of Physics","studyType":"Bachelor","startDate":"2006-09-01","endDate":"2012-09-01","courses":["Physics"]}],"certificates":[{"name":"Enologist","date":"2024-01-20","issuer":"Euroinnova Business School","url":"https://www.euroinnova.com/curso-enologia","icon":"fa-solid fa-clipboard-check"},{"name":"Deep Learning","date":"2022-01-20","issuer":"Coursera, DeepLearning AI","url":"https://www.coursera.org/account/accomplishments/specialization/certificate/DVNFF7E7KCYU","icon":"fa-solid fa-clipboard-check"},{"name":"Google Data Analytics Professional Certificate","date":"2022-03-01","issuer":"Coursera, Google","url":"https://www.credly.com/badges/881f262f-7e69-416e-b82d-122b74471ec6?source=linked_in_profile","icon":"fa-solid fa-clipboard-check"},{"name":"Sport Performance Analytics Specialization","date":"2021-09-01","issuer":"Coursera, University of Michigan","url":"https://www.coursera.org/account/accomplishments/specialization/certificate/T4X72AVP2NSJ","icon":"fa-solid fa-clipboard-check"}],"skills":[{"name":"Computing Languages","level":"advanced","icon":"fa-solid fa-hashtag","keywords":["Python","Git, Gitlab CI/CD","Snakemake","Data Analysis","Statistical Data Analysis"]}],"languages":[{"language":"Spanish","fluency":"Native speaker","icon":""},{"language":"English","fluency":"Fluent","icon":""}],"interests":[{"name":"Physics","icon":"fa-solid fa-tag","keywords":["Jet Physics","Di-Higgs Physics","Reproducibility","Workflow Orchestration"]}]} \ No newline at end of file diff --git a/assets/jupyter/blog.ipynb.html b/assets/jupyter/blog.ipynb.html index be917cd..f59fb98 100644 --- a/assets/jupyter/blog.ipynb.html +++ b/assets/jupyter/blog.ipynb.html @@ -1,4 +1,4 @@ - jekyll-jupyter-notebook20241213-1882-pemcz8

a distill-style blog post

an example of a distill-style blog post and main elements

Equations

This theme supports rendering beautiful math in inline and display modes using MathJax 3 engine. You just need to surround your math expression with $$, like $$ E = mc^2 $$. If you leave it inside a paragraph, it will produce an inline expression, just like \(E = mc^2\).

To use display mode, again surround your expression with $$ and place it as a separate paragraph. Here is an example:

\[\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)\]

Note that MathJax 3 is a major re-write of MathJax that brought a significant improvement to the loading and rendering speed, which is now on par with KaTeX.


Citations

Citations are then used in the article body with the <d-cite> tag. The key attribute is a reference to the id provided in the bibliography. The key attribute can take multiple ids, separated by commas.

The citation is presented inline like this: (a number that displays more information on hover). If you have an appendix, a bibliography is automatically created and populated in it.

Distill chose a numerical inline citation style to improve readability of citation dense articles and because many of the benefits of longer citations are obviated by displaying more information on hover. However, we consider it good style to mention author last names if you discuss something at length and it fits into the flow well — the authors are human and it’s nice for them to have the community associate them with their work.


Footnotes

Just wrap the text you would like to show up in a footnote in a <d-footnote> tag. The number of the footnote will be automatically generated.This will become a hoverable footnote.


Code Blocks

Syntax highlighting is provided within <d-code> tags. An example of inline code snippets: <d-code language="html">let x = 10;</d-code>. For larger blocks of code, add a block attribute:

var x = 25; function(x) { return x * x; }

Note: <d-code> blocks do not look good in the dark mode. You can always use the default code-highlight using the highlight liquid tag:

var x = 25;
-function(x) {
-return x \* x;
-}

Interactive Plots

You can add interative plots using plotly + iframes :framed_picture:

The plot must be generated separately and saved into an HTML file. To generate the plot that you see above, you can use the following code snippet:

import pandas as pd
-import plotly.express as px
-df = pd.read_csv(
-'https://raw.githubusercontent.com/plotly/datasets/master/earthquakes-23k.csv'
-)
-fig = px.density_mapbox(
-df,
-lat='Latitude',
-lon='Longitude',
-z='Magnitude',
-radius=10,
-center=dict(lat=0, lon=180),
-zoom=0,
-mapbox_style="stamen-terrain",
-)
-fig.show()
-fig.write_html('assets/plotly/demo.html')

Details boxes

Details boxes are collapsible boxes which hide additional information from the user. They can be added with the details liquid tag:

Click here to know more

Additional details, where math \(2x - 1\) and code is rendered correctly.


Layouts

The main text column is referred to as the body. It is the assumed layout of any direct descendants of the d-article element.

.l-body

For images you want to display a little larger, try .l-page:

.l-page

All of these have an outset variant if you want to poke out from the body text a little bit. For instance:

.l-body-outset

.l-page-outset

Occasionally you’ll want to use the full browser width. For this, use .l-screen. You can also inset the element a little from the edge of the browser by using the inset variant.

.l-screen

.l-screen-inset

The final layout is for marginalia, asides, and footnotes. It does not interrupt the normal flow of .l-body sized text except on mobile screen sizes.

.l-gutter


Other Typography?

Emphasis, aka italics, with asterisks (*asterisks*) or underscores (_underscores_).

Strong emphasis, aka bold, with asterisks or underscores.

Combined emphasis with asterisks and underscores.

Strikethrough uses two tildes. Scratch this.

  1. First ordered list item
  2. Another item ⋅⋅* Unordered sub-list.
  3. Actual numbers don’t matter, just that it’s a number ⋅⋅1. Ordered sub-list
  4. And another item.

⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we’ll use three here to also align the raw Markdown).

⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅ ⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅ ⋅⋅⋅(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)

  • Unordered list can use asterisks

  • Or minuses

  • Or pluses

I’m an inline-style link

I’m an inline-style link with title

I’m a reference-style link

You can use numbers for reference-style link definitions

Or leave it empty and use the link text itself.

URLs and URLs in angle brackets will automatically get turned into links. http://www.example.com or http://www.example.com and sometimes example.com (but not on Github, for example).

Some text to show that the reference links can follow later.

Here’s our logo (hover to see the title text):

Inline-style: alt text

Reference-style: alt text

Inline code has back-ticks around it.

var s = "JavaScript syntax highlighting";
-alert(s);
-
s = "Python syntax highlighting"
-print s
-
No language indicated, so no syntax highlighting.
-But let's throw in a <b>tag</b>.
-

Colons can be used to align columns.

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1

There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don’t need to make the raw Markdown line up prettily. You can also use inline Markdown.

Markdown Less Pretty
Still renders nicely
1 2 3

Blockquotes are very handy in email to emulate reply text. This line is part of the same quote.

Quote break.

This is a very long line that will still be quoted properly when it wraps. Oh boy let’s keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can put Markdown into a blockquote.

Here’s a line for us to start with.

This line is separated from the one above by two newlines, so it will be a separate paragraph.

This line is also a separate paragraph, but… This line is only separated by a single newline, so it’s a separate line in the same paragraph.

\ No newline at end of file diff --git a/blog/2021/index.html b/blog/2021/index.html deleted file mode 100644 index 44d97f7..0000000 --- a/blog/2021/index.html +++ /dev/null @@ -1 +0,0 @@ - 2021 | Alejandro Gomez Espinosa Ph.D.

2021

an archive of posts from this year

\ No newline at end of file diff --git a/blog/2022/giscus-comments/index.html b/blog/2022/giscus-comments/index.html deleted file mode 100644 index e014609..0000000 --- a/blog/2022/giscus-comments/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with giscus comments | Alejandro Gomez Espinosa Ph.D.

a post with giscus comments

This post shows how to add GISCUS comments.

\ No newline at end of file diff --git a/blog/2022/index.html b/blog/2022/index.html index 44a754d..b4ca000 100644 --- a/blog/2022/index.html +++ b/blog/2022/index.html @@ -1 +1 @@ - 2022 | Alejandro Gomez Espinosa Ph.D.

2022

an archive of posts from this year

\ No newline at end of file + 2022 | Alejandro Gomez Espinosa Ph.D.

2022

an archive of posts from this year

\ No newline at end of file diff --git a/blog/2022/redirect/index.html b/blog/2022/redirect/index.html deleted file mode 100644 index 2a77189..0000000 --- a/blog/2022/redirect/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with redirect | Alejandro Gomez Espinosa Ph.D.

a post with redirect

Redirecting to another page.




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • Who am I?
  • El Camino
  • Between runs and hikes
  • Harder than expected
  • The Plan
  • \ No newline at end of file diff --git a/blog/2023/audios/index.html b/blog/2023/audios/index.html deleted file mode 100644 index 8717f76..0000000 --- a/blog/2023/audios/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with audios | Alejandro Gomez Espinosa Ph.D.

    a post with audios

    This is an example post with audios. It supports local audio files.

    A simple, elegant caption looks good between video rows, after each row, or doesn't have to be there at all.



      Enjoy Reading This Article?

      Here are some more articles you might like to read next:

    • Who am I?
    • El Camino
    • Between runs and hikes
    • Harder than expected
    • The Plan
    • \ No newline at end of file diff --git a/blog/2023/custom-blockquotes/index.html b/blog/2023/custom-blockquotes/index.html deleted file mode 100644 index a386380..0000000 --- a/blog/2023/custom-blockquotes/index.html +++ /dev/null @@ -1,74 +0,0 @@ - a post with custom blockquotes | Alejandro Gomez Espinosa Ph.D.

      a post with custom blockquotes

      This post shows how to add custom styles for blockquotes. Based on jekyll-gitbook implementation.

      We decided to support the same custom blockquotes as in jekyll-gitbook, which are also found in a lot of other sites’ styles. The styles definitions can be found on the _base.scss file, more specifically:

      /* Tips, warnings, and dangers */
      -.post .post-content blockquote {
      -  &.block-tip {
      -    border-color: var(--global-tip-block);
      -    background-color: var(--global-tip-block-bg);
      -
      -    p {
      -      color: var(--global-tip-block-text);
      -    }
      -
      -    h1,
      -    h2,
      -    h3,
      -    h4,
      -    h5,
      -    h6 {
      -      color: var(--global-tip-block-title);
      -    }
      -  }
      -
      -  &.block-warning {
      -    border-color: var(--global-warning-block);
      -    background-color: var(--global-warning-block-bg);
      -
      -    p {
      -      color: var(--global-warning-block-text);
      -    }
      -
      -    h1,
      -    h2,
      -    h3,
      -    h4,
      -    h5,
      -    h6 {
      -      color: var(--global-warning-block-title);
      -    }
      -  }
      -
      -  &.block-danger {
      -    border-color: var(--global-danger-block);
      -    background-color: var(--global-danger-block-bg);
      -
      -    p {
      -      color: var(--global-danger-block-text);
      -    }
      -
      -    h1,
      -    h2,
      -    h3,
      -    h4,
      -    h5,
      -    h6 {
      -      color: var(--global-danger-block-title);
      -    }
      -  }
      -}
      -

      A regular blockquote can be used as following:

      > This is a regular blockquote
      -> and it can be used as usual
      -

      This is a regular blockquote and it can be used as usual

      These custom styles can be used by adding the specific class to the blockquote, as follows:

      > ##### TIP
      ->
      -> A tip can be used when you want to give advice
      -> related to a certain content.
      -{: .block-tip }
      -
      TIP

      A tip can be used when you want to give advice related to a certain content.

      > ##### WARNING
      ->
      -> This is a warning, and thus should
      -> be used when you want to warn the user
      -{: .block-warning }
      -
      WARNING

      This is a warning, and thus should be used when you want to warn the user

      > ##### DANGER
      ->
      -> This is a danger zone, and thus should
      -> be used carefully
      -{: .block-danger }
      -
      DANGER

      This is a danger zone, and thus should be used carefully




        Enjoy Reading This Article?

        Here are some more articles you might like to read next:

      • Who am I?
      • El Camino
      • Between runs and hikes
      • Harder than expected
      • The Plan
      • \ No newline at end of file diff --git a/blog/2023/index.html b/blog/2023/index.html deleted file mode 100644 index 4bbaafc..0000000 --- a/blog/2023/index.html +++ /dev/null @@ -1 +0,0 @@ - 2023 | Alejandro Gomez Espinosa Ph.D.

        2023

        an archive of posts from this year

        \ No newline at end of file diff --git a/blog/2023/jupyter-notebook/index.html b/blog/2023/jupyter-notebook/index.html deleted file mode 100644 index 883cd9f..0000000 --- a/blog/2023/jupyter-notebook/index.html +++ /dev/null @@ -1,10 +0,0 @@ - a post with jupyter notebook | Alejandro Gomez Espinosa Ph.D.

        a post with jupyter notebook

        To include a jupyter notebook in a post, you can use the following code:

        {::nomarkdown}
        -{% assign jupyter_path = 'assets/jupyter/blog.ipynb' | relative_url %}
        -{% capture notebook_exists %}{% file_exists assets/jupyter/blog.ipynb %}{% endcapture %}
        -{% if notebook_exists == 'true' %}
        -  {% jupyter_notebook jupyter_path %}
        -{% else %}
        -  <p>Sorry, the notebook you are looking for does not exist.</p>
        -{% endif %}
        -{:/nomarkdown}
        -

        Let’s break it down: this is possible thanks to Jekyll Jupyter Notebook plugin that allows you to embed jupyter notebooks in your posts. It basically calls jupyter nbconvert --to html to convert the notebook to an html page and then includes it in the post. Since Kramdown is the default Markdown renderer for Jekyll, we need to surround the call to the plugin with the ::nomarkdown tag so that it stops processing this part with Kramdown and outputs the content as-is.

        The plugin takes as input the path to the notebook, but it assumes the file exists. If you want to check if the file exists before calling the plugin, you can use the file_exists filter. This avoids getting a 404 error from the plugin and ending up displaying the main page inside of it instead. If the file does not exist, you can output a message to the user. The code displayed above outputs the following:

        Note that the jupyter notebook supports both light and dark themes.

        \ No newline at end of file diff --git a/blog/2023/post-bibliography/index.html b/blog/2023/post-bibliography/index.html deleted file mode 100644 index fd90273..0000000 --- a/blog/2023/post-bibliography/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with bibliography | Alejandro Gomez Espinosa Ph.D.

        a post with bibliography

        This post shows how to add bibliography to simple blog posts. We support every citation style that jekyll-scholar does. That means simple citation like (missing reference), multiple citations like (missing reference), long references like (missing reference) or also quotes:

        Lorem ipsum dolor sit amet, consectetur adipisicing elit,
        sed do eiusmod tempor.

        Lorem ipsum dolor sit amet, consectetur adipisicing.

        (missing reference)

        If you would like something more academic, check the distill style post.

        References

          \ No newline at end of file diff --git a/blog/2023/sidebar-table-of-contents/index.html b/blog/2023/sidebar-table-of-contents/index.html deleted file mode 100644 index 4d9046d..0000000 --- a/blog/2023/sidebar-table-of-contents/index.html +++ /dev/null @@ -1,3 +0,0 @@ - a post with table of contents on a sidebar | Alejandro Gomez Espinosa Ph.D.

          a post with table of contents on a sidebar

          This post shows how to add a table of contents as a sidebar.

          Adding a Table of Contents

          To add a table of contents to a post as a sidebar, simply add

          toc:
          -  sidebar: left
          -

          to the front matter of the post. The table of contents will be automatically generated from the headings in the post. If you wish to display the sidebar to the right, simply change left to right.

          Example of Sub-Heading 1

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Example of another Sub-Heading 1

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Customizing Your Table of Contents

          If you want to learn more about how to customize the table of contents of your sidebar, you can check the bootstrap-toc documentation. Notice that you can even customize the text of the heading that will be displayed on the sidebar.

          Example of Sub-Heading 2

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Example of another Sub-Heading 2

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          \ No newline at end of file diff --git a/blog/2023/table-of-contents/index.html b/blog/2023/table-of-contents/index.html deleted file mode 100644 index 938e7b2..0000000 --- a/blog/2023/table-of-contents/index.html +++ /dev/null @@ -1,3 +0,0 @@ - a post with table of contents | Alejandro Gomez Espinosa Ph.D.

          a post with table of contents


          This post shows how to add a table of contents in the beginning of the post.

          Adding a Table of Contents

          To add a table of contents to a post, simply add

          toc:
          -  beginning: true
          -

          to the front matter of the post. The table of contents will be automatically generated from the headings in the post.

          Example of Sub-Heading 1

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Example of another Sub-Heading 1

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Table of Contents Options

          If you want to learn more about how to customize the table of contents, you can check the jekyll-toc repository.

          Example of Sub-Heading 2

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          Example of another Sub-Heading 2

          Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

          \ No newline at end of file diff --git a/blog/2023/tables/index.html b/blog/2023/tables/index.html deleted file mode 100644 index e40b0a3..0000000 --- a/blog/2023/tables/index.html +++ /dev/null @@ -1,33 +0,0 @@ - displaying beautiful tables with Bootstrap Tables | Alejandro Gomez Espinosa Ph.D.

          displaying beautiful tables with Bootstrap Tables

          Using markdown to display tables is easy.

          Simple Example

          First, add the following to the post’s front matter

          pretty_table: true
          -

          Then, the following syntax

          | Left aligned | Center aligned | Right aligned |
          -| :----------- | :------------: | ------------: |
          -| Left 1       |    center 1    |       right 1 |
          -| Left 2       |    center 2    |       right 2 |
          -| Left 3       |    center 3    |       right 3 |
          -

          will generate

          Left aligned Center aligned Right aligned
          Left 1 center 1 right 1
          Left 2 center 2 right 2
          Left 3 center 3 right 3

          HTML Example

          It is also possible to use HTML to display tables. For example, the following HTML code will display a table with Bootstrap Table, loaded from a JSON file:

          <table id="table" data-toggle="table" data-url="{{ '/assets/json/table_data.json' | relative_url }}">
          -  <thead>
          -    <tr>
          -      <th data-field="id">ID</th>
          -      <th data-field="name">Item Name</th>
          -      <th data-field="price">Item Price</th>
          -    </tr>
          -  </thead>
          -</table>
          -
          ID Item Name Item Price

          More Complex Example

          By using Bootstrap Table it is possible to create pretty complex tables, with pagination, search, and more. For example, the following HTML code will display a table, loaded from a JSON file, with pagination, search, checkboxes, and header/content alignment. For more information, check the documentation.

          <table
          -  data-click-to-select="true"
          -  data-height="460"
          -  data-pagination="true"
          -  data-search="true"
          -  data-toggle="table"
          -  data-url="{{ '/assets/json/table_data.json' | relative_url }}"
          ->
          -  <thead>
          -    <tr>
          -      <th data-checkbox="true"></th>
          -      <th data-field="id" data-halign="left" data-align="center" data-sortable="true">ID</th>
          -      <th data-field="name" data-halign="center" data-align="right" data-sortable="true">Item Name</th>
          -      <th data-field="price" data-halign="right" data-align="left" data-sortable="true">Item Price</th>
          -    </tr>
          -  </thead>
          -</table>
          -
          ID Item Name Item Price



            Enjoy Reading This Article?

            Here are some more articles you might like to read next:

          • Who am I?
          • El Camino
          • Between runs and hikes
          • Harder than expected
          • The Plan
          • \ No newline at end of file diff --git a/blog/2023/tikzjax/index.html b/blog/2023/tikzjax/index.html deleted file mode 100644 index c7cb56d..0000000 --- a/blog/2023/tikzjax/index.html +++ /dev/null @@ -1,7 +0,0 @@ - a post with TikZJax | Alejandro Gomez Espinosa Ph.D.

            a post with TikZJax

            This is an example post with TikZ code. TikZJax converts script tags (containing TikZ code) into SVGs.




              Enjoy Reading This Article?

              Here are some more articles you might like to read next:

            • Who am I?
            • El Camino
            • Between runs and hikes
            • Harder than expected
            • The Plan
            • \ No newline at end of file diff --git a/blog/2023/videos/index.html b/blog/2023/videos/index.html deleted file mode 100644 index 626a662..0000000 --- a/blog/2023/videos/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with videos | Alejandro Gomez Espinosa Ph.D.

              a post with videos

              This is an example post with videos. It supports local video files.

              A simple, elegant caption looks good between video rows, after each row, or doesn't have to be there at all.

              It does also support embedding videos from different sources. Here are some examples:




                Enjoy Reading This Article?

                Here are some more articles you might like to read next:

              • Who am I?
              • El Camino
              • Between runs and hikes
              • Harder than expected
              • The Plan
              • \ No newline at end of file diff --git a/blog/2024/advanced-images/index.html b/blog/2024/advanced-images/index.html deleted file mode 100644 index 508ea10..0000000 --- a/blog/2024/advanced-images/index.html +++ /dev/null @@ -1 +0,0 @@ - a post with advanced image components | Alejandro Gomez Espinosa Ph.D.

                a post with advanced image components

                This is an example post with advanced image components.

                Image Slider

                This is a simple image slider. It uses the Swiper library. Check the examples page for more information of what you can achieve with it.

                Image Comparison Slider

                This is a simple image comparison slider. It uses the img-comparison-slider library. Check the examples page for more information of what you can achieve with it.




                  Enjoy Reading This Article?

                  Here are some more articles you might like to read next:

                • Who am I?
                • El Camino
                • Between runs and hikes
                • Harder than expected
                • The Plan
                • \ No newline at end of file diff --git a/blog/2024/chartjs/index.html b/blog/2024/chartjs/index.html deleted file mode 100644 index ee19777..0000000 --- a/blog/2024/chartjs/index.html +++ /dev/null @@ -1,159 +0,0 @@ - a post with chart.js | Alejandro Gomez Espinosa Ph.D.

                  a post with chart.js

                  This is an example post with some chart.js code.

                  ```chartjs
                  -{
                  -  "type": "line",
                  -  "data": {
                  -    "labels": [
                  -      "January",
                  -      "February",
                  -      "March",
                  -      "April",
                  -      "May",
                  -      "June",
                  -      "July"
                  -    ],
                  -    "datasets": [
                  -      {
                  -        "label": "# of bugs",
                  -        "fill": false,
                  -        "lineTension": 0.1,
                  -        "backgroundColor": "rgba(75,192,192,0.4)",
                  -        "borderColor": "rgba(75,192,192,1)",
                  -        "borderCapStyle": "butt",
                  -        "borderDash": [],
                  -        "borderDashOffset": 0,
                  -        "borderJoinStyle": "miter",
                  -        "pointBorderColor": "rgba(75,192,192,1)",
                  -        "pointBackgroundColor": "#fff",
                  -        "pointBorderWidth": 1,
                  -        "pointHoverRadius": 5,
                  -        "pointHoverBackgroundColor": "rgba(75,192,192,1)",
                  -        "pointHoverBorderColor": "rgba(220,220,220,1)",
                  -        "pointHoverBorderWidth": 2,
                  -        "pointRadius": 1,
                  -        "pointHitRadius": 10,
                  -        "data": [
                  -          65,
                  -          59,
                  -          80,
                  -          81,
                  -          56,
                  -          55,
                  -          40
                  -        ],
                  -        "spanGaps": false
                  -      }
                  -    ]
                  -  },
                  -  "options": {}
                  -}
                  -```
                  -

                  This is how it looks like:

                  {
                  -  "type": "line",
                  -  "data": {
                  -    "labels": [
                  -      "January",
                  -      "February",
                  -      "March",
                  -      "April",
                  -      "May",
                  -      "June",
                  -      "July"
                  -    ],
                  -    "datasets": [
                  -      {
                  -        "label": "# of bugs",
                  -        "fill": false,
                  -        "lineTension": 0.1,
                  -        "backgroundColor": "rgba(75,192,192,0.4)",
                  -        "borderColor": "rgba(75,192,192,1)",
                  -        "borderCapStyle": "butt",
                  -        "borderDash": [],
                  -        "borderDashOffset": 0,
                  -        "borderJoinStyle": "miter",
                  -        "pointBorderColor": "rgba(75,192,192,1)",
                  -        "pointBackgroundColor": "#fff",
                  -        "pointBorderWidth": 1,
                  -        "pointHoverRadius": 5,
                  -        "pointHoverBackgroundColor": "rgba(75,192,192,1)",
                  -        "pointHoverBorderColor": "rgba(220,220,220,1)",
                  -        "pointHoverBorderWidth": 2,
                  -        "pointRadius": 1,
                  -        "pointHitRadius": 10,
                  -        "data": [
                  -          65,
                  -          59,
                  -          80,
                  -          81,
                  -          56,
                  -          55,
                  -          40
                  -        ],
                  -        "spanGaps": false
                  -      }
                  -    ]
                  -  },
                  -  "options": {}
                  -}
                  -

                  Also another example chart.

                  ```chartjs
                  -{
                  -  "type": "doughnut",
                  -  "data": {
                  -    "labels": [
                  -      "Red",
                  -      "Blue",
                  -      "Yellow"
                  -    ],
                  -    "datasets": [
                  -      {
                  -        "data": [
                  -          300,
                  -          50,
                  -          100
                  -        ],
                  -        "backgroundColor": [
                  -          "#FF6384",
                  -          "#36A2EB",
                  -          "#FFCE56"
                  -        ],
                  -        "hoverBackgroundColor": [
                  -          "#FF6384",
                  -          "#36A2EB",
                  -          "#FFCE56"
                  -        ]
                  -      }
                  -    ]
                  -  },
                  -  "options": {}
                  -}
                  -```
                  -

                  Which generates:

                  {
                  -  "type": "doughnut",
                  -  "data": {
                  -    "labels": [
                  -      "Red",
                  -      "Blue",
                  -      "Yellow"
                  -    ],
                  -    "datasets": [
                  -      {
                  -        "data": [
                  -          300,
                  -          50,
                  -          100
                  -        ],
                  -        "backgroundColor": [
                  -          "#FF6384",
                  -          "#36A2EB",
                  -          "#FFCE56"
                  -        ],
                  -        "hoverBackgroundColor": [
                  -          "#FF6384",
                  -          "#36A2EB",
                  -          "#FFCE56"
                  -        ]
                  -      }
                  -    ]
                  -  },
                  -  "options": {}
                  -}
                  -



                    Enjoy Reading This Article?

                    Here are some more articles you might like to read next:

                  • Who am I?
                  • El Camino
                  • Between runs and hikes
                  • Harder than expected
                  • The Plan
                  • \ No newline at end of file diff --git a/blog/2024/code-diff/index.html b/blog/2024/code-diff/index.html deleted file mode 100644 index 55c492c..0000000 --- a/blog/2024/code-diff/index.html +++ /dev/null @@ -1,445 +0,0 @@ - a post with code diff | Alejandro Gomez Espinosa Ph.D.

                    a post with code diff

                    You can display diff code by using the regular markdown syntax:

                    ```diff
                    -diff --git a/sample.js b/sample.js
                    -index 0000001..0ddf2ba
                    ---- a/sample.js
                    -+++ b/sample.js
                    -@@ -1 +1 @@
                    --console.log("Hello World!")
                    -+console.log("Hello from Diff2Html!")
                    -```
                    -

                    Which generates:

                    diff --git a/sample.js b/sample.js
                    -index 0000001..0ddf2ba
                    ---- a/sample.js
                    -+++ b/sample.js
                    -@@ -1 +1 @@
                    --console.log("Hello World!")
                    -+console.log("Hello from Diff2Html!")
                    -

                    But this is difficult to read, specially if you have a large diff. You can use diff2html to display a more readable version of the diff. For this, just use diff2html instead of diff for the code block language:

                    ```diff2html
                    -diff --git a/sample.js b/sample.js
                    -index 0000001..0ddf2ba
                    ---- a/sample.js
                    -+++ b/sample.js
                    -@@ -1 +1 @@
                    --console.log("Hello World!")
                    -+console.log("Hello from Diff2Html!")
                    -```
                    -

                    If we use a longer example, for example this commit from diff2html, it will generate the following output:

                    From 2aaae31cc2a37bfff83430c2c914b140bee59b6a Mon Sep 17 00:00:00 2001
                    -From: Rodrigo Fernandes <rtfrodrigo@gmail.com>
                    -Date: Sun, 9 Oct 2016 16:41:54 +0100
                    -Subject: [PATCH 1/2] Initial template override support
                    -
                    ----
                    - scripts/hulk.js                    |  4 ++--
                    - src/diff2html.js                   |  3 +--
                    - src/file-list-printer.js           | 11 ++++++++---
                    - src/hoganjs-utils.js               | 29 +++++++++++++++++------------
                    - src/html-printer.js                |  6 ++++++
                    - src/line-by-line-printer.js        |  6 +++++-
                    - src/side-by-side-printer.js        |  6 +++++-
                    - test/file-list-printer-tests.js    |  2 +-
                    - test/hogan-cache-tests.js          | 18 +++++++++++++++---
                    - test/line-by-line-tests.js         |  3 +--
                    - test/side-by-side-printer-tests.js |  3 +--
                    - 11 files changed, 62 insertions(+), 29 deletions(-)
                    -
                    -diff --git a/scripts/hulk.js b/scripts/hulk.js
                    -index 5a793c18..a4b1a4d5 100755
                    ---- a/scripts/hulk.js
                    -+++ b/scripts/hulk.js
                    -@@ -173,11 +173,11 @@ function namespace(name) {
                    - // write a template foreach file that matches template extension
                    - templates = extractFiles(options.argv.remain)
                    -   .map(function(file) {
                    --    var openedFile = fs.readFileSync(file, 'utf-8');
                    -+    var openedFile = fs.readFileSync(file, 'utf-8').trim();
                    -     var name;
                    -     if (!openedFile) return;
                    -     name = namespace(path.basename(file).replace(/\..*$/, ''));
                    --    openedFile = removeByteOrderMark(openedFile.trim());
                    -+    openedFile = removeByteOrderMark(openedFile);
                    -     openedFile = wrap(file, name, openedFile);
                    -     if (!options.outputdir) return openedFile;
                    -     fs.writeFileSync(path.join(options.outputdir, name + '.js')
                    -diff --git a/src/diff2html.js b/src/diff2html.js
                    -index 21b0119e..64e138f5 100644
                    ---- a/src/diff2html.js
                    -+++ b/src/diff2html.js
                    -@@ -7,7 +7,6 @@
                    -
                    - (function() {
                    -   var diffParser = require('./diff-parser.js').DiffParser;
                    --  var fileLister = require('./file-list-printer.js').FileListPrinter;
                    -   var htmlPrinter = require('./html-printer.js').HtmlPrinter;
                    -
                    -   function Diff2Html() {
                    -@@ -43,7 +42,7 @@
                    -
                    -     var fileList = '';
                    -     if (configOrEmpty.showFiles === true) {
                    --      fileList = fileLister.generateFileList(diffJson, configOrEmpty);
                    -+      fileList = htmlPrinter.generateFileListSummary(diffJson, configOrEmpty);
                    -     }
                    -
                    -     var diffOutput = '';
                    -diff --git a/src/file-list-printer.js b/src/file-list-printer.js
                    -index e408d9b2..1e0a2c61 100644
                    ---- a/src/file-list-printer.js
                    -+++ b/src/file-list-printer.js
                    -@@ -8,11 +8,16 @@
                    - (function() {
                    -   var printerUtils = require('./printer-utils.js').PrinterUtils;
                    -
                    --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+  var hoganUtils;
                    -+
                    -   var baseTemplatesPath = 'file-summary';
                    -   var iconsBaseTemplatesPath = 'icon';
                    -
                    --  function FileListPrinter() {
                    -+  function FileListPrinter(config) {
                    -+    this.config = config;
                    -+
                    -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+    hoganUtils = new HoganJsUtils(config);
                    -   }
                    -
                    -   FileListPrinter.prototype.generateFileList = function(diffFiles) {
                    -@@ -38,5 +43,5 @@
                    -     });
                    -   };
                    -
                    --  module.exports.FileListPrinter = new FileListPrinter();
                    -+  module.exports.FileListPrinter = FileListPrinter;
                    - })();
                    -diff --git a/src/hoganjs-utils.js b/src/hoganjs-utils.js
                    -index 9949e5fa..0dda08d7 100644
                    ---- a/src/hoganjs-utils.js
                    -+++ b/src/hoganjs-utils.js
                    -@@ -8,18 +8,19 @@
                    - (function() {
                    -   var fs = require('fs');
                    -   var path = require('path');
                    --
                    -   var hogan = require('hogan.js');
                    -
                    -   var hoganTemplates = require('./templates/diff2html-templates.js');
                    -
                    --  var templatesPath = path.resolve(__dirname, 'templates');
                    -+  var extraTemplates;
                    -
                    --  function HoganJsUtils() {
                    -+  function HoganJsUtils(configuration) {
                    -+    this.config = configuration || {};
                    -+    extraTemplates = this.config.templates || {};
                    -   }
                    -
                    --  HoganJsUtils.prototype.render = function(namespace, view, params, configuration) {
                    --    var template = this.template(namespace, view, configuration);
                    -+  HoganJsUtils.prototype.render = function(namespace, view, params) {
                    -+    var template = this.template(namespace, view);
                    -     if (template) {
                    -       return template.render(params);
                    -     }
                    -@@ -27,17 +28,16 @@
                    -     return null;
                    -   };
                    -
                    --  HoganJsUtils.prototype.template = function(namespace, view, configuration) {
                    --    var config = configuration || {};
                    -+  HoganJsUtils.prototype.template = function(namespace, view) {
                    -     var templateKey = this._templateKey(namespace, view);
                    -
                    --    return this._getTemplate(templateKey, config);
                    -+    return this._getTemplate(templateKey);
                    -   };
                    -
                    --  HoganJsUtils.prototype._getTemplate = function(templateKey, config) {
                    -+  HoganJsUtils.prototype._getTemplate = function(templateKey) {
                    -     var template;
                    -
                    --    if (!config.noCache) {
                    -+    if (!this.config.noCache) {
                    -       template = this._readFromCache(templateKey);
                    -     }
                    -
                    -@@ -53,6 +53,7 @@
                    -
                    -     try {
                    -       if (fs.readFileSync) {
                    -+        var templatesPath = path.resolve(__dirname, 'templates');
                    -         var templatePath = path.join(templatesPath, templateKey);
                    -         var templateContent = fs.readFileSync(templatePath + '.mustache', 'utf8');
                    -         template = hogan.compile(templateContent);
                    -@@ -66,12 +67,16 @@
                    -   };
                    -
                    -   HoganJsUtils.prototype._readFromCache = function(templateKey) {
                    --    return hoganTemplates[templateKey];
                    -+    return extraTemplates[templateKey] || hoganTemplates[templateKey];
                    -   };
                    -
                    -   HoganJsUtils.prototype._templateKey = function(namespace, view) {
                    -     return namespace + '-' + view;
                    -   };
                    -
                    --  module.exports.HoganJsUtils = new HoganJsUtils();
                    -+  HoganJsUtils.prototype.compile = function(templateStr) {
                    -+    return hogan.compile(templateStr);
                    -+  };
                    -+
                    -+  module.exports.HoganJsUtils = HoganJsUtils;
                    - })();
                    -diff --git a/src/html-printer.js b/src/html-printer.js
                    -index 585d5b66..13f83047 100644
                    ---- a/src/html-printer.js
                    -+++ b/src/html-printer.js
                    -@@ -8,6 +8,7 @@
                    - (function() {
                    -   var LineByLinePrinter = require('./line-by-line-printer.js').LineByLinePrinter;
                    -   var SideBySidePrinter = require('./side-by-side-printer.js').SideBySidePrinter;
                    -+  var FileListPrinter = require('./file-list-printer.js').FileListPrinter;
                    -
                    -   function HtmlPrinter() {
                    -   }
                    -@@ -22,5 +23,10 @@
                    -     return sideBySidePrinter.generateSideBySideJsonHtml(diffFiles);
                    -   };
                    -
                    -+  HtmlPrinter.prototype.generateFileListSummary = function(diffJson, config) {
                    -+    var fileListPrinter = new FileListPrinter(config);
                    -+    return fileListPrinter.generateFileList(diffJson);
                    -+  };
                    -+
                    -   module.exports.HtmlPrinter = new HtmlPrinter();
                    - })();
                    -diff --git a/src/line-by-line-printer.js b/src/line-by-line-printer.js
                    -index b07eb53c..d230bedd 100644
                    ---- a/src/line-by-line-printer.js
                    -+++ b/src/line-by-line-printer.js
                    -@@ -11,7 +11,8 @@
                    -   var utils = require('./utils.js').Utils;
                    -   var Rematch = require('./rematch.js').Rematch;
                    -
                    --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+  var hoganUtils;
                    -+
                    -   var genericTemplatesPath = 'generic';
                    -   var baseTemplatesPath = 'line-by-line';
                    -   var iconsBaseTemplatesPath = 'icon';
                    -@@ -19,6 +20,9 @@
                    -
                    -   function LineByLinePrinter(config) {
                    -     this.config = config;
                    -+
                    -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+    hoganUtils = new HoganJsUtils(config);
                    -   }
                    -
                    -   LineByLinePrinter.prototype.makeFileDiffHtml = function(file, diffs) {
                    -diff --git a/src/side-by-side-printer.js b/src/side-by-side-printer.js
                    -index bbf1dc8d..5e3033b3 100644
                    ---- a/src/side-by-side-printer.js
                    -+++ b/src/side-by-side-printer.js
                    -@@ -11,7 +11,8 @@
                    -   var utils = require('./utils.js').Utils;
                    -   var Rematch = require('./rematch.js').Rematch;
                    -
                    --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+  var hoganUtils;
                    -+
                    -   var genericTemplatesPath = 'generic';
                    -   var baseTemplatesPath = 'side-by-side';
                    -   var iconsBaseTemplatesPath = 'icon';
                    -@@ -26,6 +27,9 @@
                    -
                    -   function SideBySidePrinter(config) {
                    -     this.config = config;
                    -+
                    -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                    -+    hoganUtils = new HoganJsUtils(config);
                    -   }
                    -
                    -   SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) {
                    -diff --git a/test/file-list-printer-tests.js b/test/file-list-printer-tests.js
                    -index a502a46f..60ea3208 100644
                    ---- a/test/file-list-printer-tests.js
                    -+++ b/test/file-list-printer-tests.js
                    -@@ -1,6 +1,6 @@
                    - var assert = require('assert');
                    -
                    --var fileListPrinter = require('../src/file-list-printer.js').FileListPrinter;
                    -+var fileListPrinter = new (require('../src/file-list-printer.js').FileListPrinter)();
                    -
                    - describe('FileListPrinter', function() {
                    -   describe('generateFileList', function() {
                    -diff --git a/test/hogan-cache-tests.js b/test/hogan-cache-tests.js
                    -index 190bf6f8..3bb754ac 100644
                    ---- a/test/hogan-cache-tests.js
                    -+++ b/test/hogan-cache-tests.js
                    -@@ -1,6 +1,6 @@
                    - var assert = require('assert');
                    -
                    --var HoganJsUtils = require('../src/hoganjs-utils.js').HoganJsUtils;
                    -+var HoganJsUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)();
                    - var diffParser = require('../src/diff-parser.js').DiffParser;
                    -
                    - describe('HoganJsUtils', function() {
                    -@@ -21,16 +21,28 @@ describe('HoganJsUtils', function() {
                    -       });
                    -       assert.equal(emptyDiffHtml, result);
                    -     });
                    -+
                    -     it('should render view without cache', function() {
                    -       var result = HoganJsUtils.render('generic', 'empty-diff', {
                    -         contentClass: 'd2h-code-line',
                    -         diffParser: diffParser
                    -       }, {noCache: true});
                    --      assert.equal(emptyDiffHtml + '\n', result);
                    -+      assert.equal(emptyDiffHtml, result);
                    -     });
                    -+
                    -     it('should return null if template is missing', function() {
                    --      var result = HoganJsUtils.render('generic', 'missing-template', {}, {noCache: true});
                    -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)({noCache: true});
                    -+      var result = hoganUtils.render('generic', 'missing-template', {});
                    -       assert.equal(null, result);
                    -     });
                    -+
                    -+    it('should allow templates to be overridden', function() {
                    -+      var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                    -+
                    -+      var config = {templates: {'generic-empty-diff': emptyDiffTemplate}};
                    -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                    -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                    -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                    -+    });
                    -   });
                    - });
                    -diff --git a/test/line-by-line-tests.js b/test/line-by-line-tests.js
                    -index 1cd92073..8869b3df 100644
                    ---- a/test/line-by-line-tests.js
                    -+++ b/test/line-by-line-tests.js
                    -@@ -14,7 +14,7 @@ describe('LineByLinePrinter', function() {
                    -         '            File without changes\n' +
                    -         '        </div>\n' +
                    -         '    </td>\n' +
                    --        '</tr>\n';
                    -+        '</tr>';
                    -
                    -       assert.equal(expected, fileHtml);
                    -     });
                    -@@ -422,7 +422,6 @@ describe('LineByLinePrinter', function() {
                    -         '        </div>\n' +
                    -         '    </td>\n' +
                    -         '</tr>\n' +
                    --        '\n' +
                    -         '                </tbody>\n' +
                    -         '            </table>\n' +
                    -         '        </div>\n' +
                    -diff --git a/test/side-by-side-printer-tests.js b/test/side-by-side-printer-tests.js
                    -index 76625f8e..771daaa5 100644
                    ---- a/test/side-by-side-printer-tests.js
                    -+++ b/test/side-by-side-printer-tests.js
                    -@@ -14,7 +14,7 @@ describe('SideBySidePrinter', function() {
                    -         '            File without changes\n' +
                    -         '        </div>\n' +
                    -         '    </td>\n' +
                    --        '</tr>\n';
                    -+        '</tr>';
                    -
                    -       assert.equal(expectedRight, fileHtml.right);
                    -       assert.equal(expectedLeft, fileHtml.left);
                    -@@ -324,7 +324,6 @@ describe('SideBySidePrinter', function() {
                    -         '        </div>\n' +
                    -         '    </td>\n' +
                    -         '</tr>\n' +
                    --        '\n' +
                    -         '                    </tbody>\n' +
                    -         '                </table>\n' +
                    -         '            </div>\n' +
                    -
                    -From f3cadb96677d0eb82fc2752dc3ffbf35ca9b5bdb Mon Sep 17 00:00:00 2001
                    -From: Rodrigo Fernandes <rtfrodrigo@gmail.com>
                    -Date: Sat, 15 Oct 2016 13:21:22 +0100
                    -Subject: [PATCH 2/2] Allow uncompiled templates
                    -
                    ----
                    - README.md                 |  3 +++
                    - src/hoganjs-utils.js      |  7 +++++++
                    - test/hogan-cache-tests.js | 24 +++++++++++++++++++++++-
                    - 3 files changed, 33 insertions(+), 1 deletion(-)
                    -
                    -diff --git a/README.md b/README.md
                    -index 132c8a28..46909f25 100644
                    ---- a/README.md
                    -+++ b/README.md
                    -@@ -98,6 +98,9 @@ The HTML output accepts a Javascript object with configuration. Possible options
                    -   - `synchronisedScroll`: scroll both panes in side-by-side mode: `true` or `false`, default is `false`
                    -   - `matchWordsThreshold`: similarity threshold for word matching, default is 0.25
                    -   - `matchingMaxComparisons`: perform at most this much comparisons for line matching a block of changes, default is `2500`
                    -+  - `templates`: object with previously compiled templates to replace parts of the html
                    -+  - `rawTemplates`: object with raw not compiled templates to replace parts of the html
                    -+  > For more information regarding the possible templates look into [src/templates](https://github.com/rtfpessoa/diff2html/tree/master/src/templates)
                    -
                    - ## Diff2HtmlUI Helper
                    -
                    -diff --git a/src/hoganjs-utils.js b/src/hoganjs-utils.js
                    -index 0dda08d7..b2e9c275 100644
                    ---- a/src/hoganjs-utils.js
                    -+++ b/src/hoganjs-utils.js
                    -@@ -17,6 +17,13 @@
                    -   function HoganJsUtils(configuration) {
                    -     this.config = configuration || {};
                    -     extraTemplates = this.config.templates || {};
                    -+
                    -+    var rawTemplates = this.config.rawTemplates || {};
                    -+    for (var templateName in rawTemplates) {
                    -+      if (rawTemplates.hasOwnProperty(templateName)) {
                    -+        if (!extraTemplates[templateName]) extraTemplates[templateName] = this.compile(rawTemplates[templateName]);
                    -+      }
                    -+    }
                    -   }
                    -
                    -   HoganJsUtils.prototype.render = function(namespace, view, params) {
                    -diff --git a/test/hogan-cache-tests.js b/test/hogan-cache-tests.js
                    -index 3bb754ac..a34839c0 100644
                    ---- a/test/hogan-cache-tests.js
                    -+++ b/test/hogan-cache-tests.js
                    -@@ -36,7 +36,7 @@ describe('HoganJsUtils', function() {
                    -       assert.equal(null, result);
                    -     });
                    -
                    --    it('should allow templates to be overridden', function() {
                    -+    it('should allow templates to be overridden with compiled templates', function() {
                    -       var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                    -
                    -       var config = {templates: {'generic-empty-diff': emptyDiffTemplate}};
                    -@@ -44,5 +44,27 @@ describe('HoganJsUtils', function() {
                    -       var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                    -       assert.equal('<p>Rodrigo Fernandes</p>', result);
                    -     });
                    -+
                    -+    it('should allow templates to be overridden with uncompiled templates', function() {
                    -+      var emptyDiffTemplate = '<p></p>';
                    -+
                    -+      var config = {rawTemplates: {'generic-empty-diff': emptyDiffTemplate}};
                    -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                    -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                    -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                    -+    });
                    -+
                    -+    it('should allow templates to be overridden giving priority to compiled templates', function() {
                    -+      var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                    -+      var emptyDiffTemplateUncompiled = '<p>Not used!</p>';
                    -+
                    -+      var config = {
                    -+        templates: {'generic-empty-diff': emptyDiffTemplate},
                    -+        rawTemplates: {'generic-empty-diff': emptyDiffTemplateUncompiled}
                    -+      };
                    -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                    -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                    -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                    -+    });
                    -   });
                    - });
                    -



                      Enjoy Reading This Article?

                      Here are some more articles you might like to read next:

                    • Who am I?
                    • El Camino
                    • Between runs and hikes
                    • Harder than expected
                    • The Plan
                    • \ No newline at end of file diff --git a/blog/2024/echarts/index.html b/blog/2024/echarts/index.html deleted file mode 100644 index a661ae8..0000000 --- a/blog/2024/echarts/index.html +++ /dev/null @@ -1,47 +0,0 @@ - a post with echarts | Alejandro Gomez Espinosa Ph.D.

                      a post with echarts

                      This is an example post with some echarts code.

                      ```echarts
                      -{
                      -  "title": {
                      -    "text": "ECharts Getting Started Example"
                      -  },
                      -  "responsive": true,
                      -  "tooltip": {},
                      -  "legend": {
                      -    "top": "30px",
                      -    "data": ["sales"]
                      -  },
                      -  "xAxis": {
                      -    "data": ["Shirts", "Cardigans", "Chiffons", "Pants", "Heels", "Socks"]
                      -  },
                      -  "yAxis": {},
                      -  "series": [
                      -    {
                      -      "name": "sales",
                      -      "type": "bar",
                      -      "data": [5, 20, 36, 10, 10, 20]
                      -    }
                      -  ]
                      -}
                      -```
                      -

                      Which generates:

                      {
                      -  "title": {
                      -    "text": "ECharts Getting Started Example"
                      -  },
                      -  "responsive": true,
                      -  "tooltip": {},
                      -  "legend": {
                      -    "top": "30px",
                      -    "data": ["sales"]
                      -  },
                      -  "xAxis": {
                      -    "data": ["Shirts", "Cardigans", "Chiffons", "Pants", "Heels", "Socks"]
                      -  },
                      -  "yAxis": {},
                      -  "series": [
                      -    {
                      -      "name": "sales",
                      -      "type": "bar",
                      -      "data": [5, 20, 36, 10, 10, 20]
                      -    }
                      -  ]
                      -}
                      -

                      Note that this library offer support for both light and dark themes. You can switch between them using the theme switcher in the top right corner of the page.




                        Enjoy Reading This Article?

                        Here are some more articles you might like to read next:

                      • Who am I?
                      • El Camino
                      • Between runs and hikes
                      • Harder than expected
                      • The Plan
                      • \ No newline at end of file diff --git a/blog/2024/geojson-map/index.html b/blog/2024/geojson-map/index.html deleted file mode 100644 index fae314d..0000000 --- a/blog/2024/geojson-map/index.html +++ /dev/null @@ -1,75 +0,0 @@ - a post with geojson | Alejandro Gomez Espinosa Ph.D.

                        a post with geojson

                        This is an example post with some geojson code. The support is provided thanks to Leaflet. To create your own visualization, go to geojson.io.

                        ```geojson
                        -{
                        -  "type": "FeatureCollection",
                        -  "features": [
                        -    {
                        -      "type": "Feature",
                        -      "properties": {},
                        -      "geometry": {
                        -        "coordinates": [
                        -          [
                        -            [
                        -              -60.11363029935569,
                        -              -2.904625022183211
                        -            ],
                        -            [
                        -              -60.11363029935569,
                        -              -3.162613728707967
                        -            ],
                        -            [
                        -              -59.820894493858034,
                        -              -3.162613728707967
                        -            ],
                        -            [
                        -              -59.820894493858034,
                        -              -2.904625022183211
                        -            ],
                        -            [
                        -              -60.11363029935569,
                        -              -2.904625022183211
                        -            ]
                        -          ]
                        -        ],
                        -        "type": "Polygon"
                        -      }
                        -    }
                        -  ]
                        -}
                        -```
                        -

                        Which generates:

                        {
                        -  "type": "FeatureCollection",
                        -  "features": [
                        -    {
                        -      "type": "Feature",
                        -      "properties": {},
                        -      "geometry": {
                        -        "coordinates": [
                        -          [
                        -            [
                        -              -60.11363029935569,
                        -              -2.904625022183211
                        -            ],
                        -            [
                        -              -60.11363029935569,
                        -              -3.162613728707967
                        -            ],
                        -            [
                        -              -59.820894493858034,
                        -              -3.162613728707967
                        -            ],
                        -            [
                        -              -59.820894493858034,
                        -              -2.904625022183211
                        -            ],
                        -            [
                        -              -60.11363029935569,
                        -              -2.904625022183211
                        -            ]
                        -          ]
                        -        ],
                        -        "type": "Polygon"
                        -      }
                        -    }
                        -  ]
                        -}
                        -



                          Enjoy Reading This Article?

                          Here are some more articles you might like to read next:

                        • Who am I?
                        • El Camino
                        • Between runs and hikes
                        • Harder than expected
                        • The Plan
                        • \ No newline at end of file diff --git a/blog/2024/index.html b/blog/2024/index.html index cb28514..31d4b5f 100644 --- a/blog/2024/index.html +++ b/blog/2024/index.html @@ -1 +1 @@ - 2024 | Alejandro Gomez Espinosa Ph.D.

                          2024

                          an archive of posts from this year

                          \ No newline at end of file + 2024 | Alejandro Gomez Espinosa Ph.D.

                          2024

                          an archive of posts from this year

                          \ No newline at end of file diff --git a/blog/2024/post-citation/index.html b/blog/2024/post-citation/index.html deleted file mode 100644 index dfd3e5a..0000000 --- a/blog/2024/post-citation/index.html +++ /dev/null @@ -1,8 +0,0 @@ - a post that can be cited | Alejandro Gomez Espinosa Ph.D.

                          a post that can be cited

                          This is an example post that can be cited. The content of the post ends here, while the citation information is automatically provided below. The only thing needed is for you to set the citation key in the front matter to true.




                          If you found this useful, please cite this as:

                          Espinosa Ph.D., Alejandro Gomez (Apr 2024). a post that can be cited. https://alefisico.github.io.

                          or as a BibTeX entry:

                          @article{espinosa ph.d.2024a-post-that-can-be-cited,
                          -  title   = {a post that can be cited},
                          -  author  = {Espinosa Ph.D., Alejandro Gomez},
                          -  year    = {2024},
                          -  month   = {Apr},
                          -  url     = {https://alefisico.github.io/blog/2024/post-citation/}
                          -}
                          -



                            Enjoy Reading This Article?

                            Here are some more articles you might like to read next:

                          • Who am I?
                          • El Camino
                          • Between runs and hikes
                          • Harder than expected
                          • The Plan
                          • \ No newline at end of file diff --git a/blog/2024/pseudocode/index.html b/blog/2024/pseudocode/index.html deleted file mode 100644 index 9d6d9cd..0000000 --- a/blog/2024/pseudocode/index.html +++ /dev/null @@ -1,53 +0,0 @@ - a post with pseudo code | Alejandro Gomez Espinosa Ph.D.

                            a post with pseudo code

                            This is an example post with some pseudo code rendered by pseudocode. The example presented here is the same as the one in the pseudocode.js documentation, with only one simple but important change: everytime you would use $, you should use $$ instead. Also, note that the pseudocode key in the front matter is set to true to enable the rendering of pseudo code. As an example, using this code:

                            ```pseudocode
                            -% This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition)
                            -\begin{algorithm}
                            -\caption{Quicksort}
                            -\begin{algorithmic}
                            -\PROCEDURE{Quicksort}{$$A, p, r$$}
                            -    \IF{$$p < r$$}
                            -        \STATE $$q = $$ \CALL{Partition}{$$A, p, r$$}
                            -        \STATE \CALL{Quicksort}{$$A, p, q - 1$$}
                            -        \STATE \CALL{Quicksort}{$$A, q + 1, r$$}
                            -    \ENDIF
                            -\ENDPROCEDURE
                            -\PROCEDURE{Partition}{$$A, p, r$$}
                            -    \STATE $$x = A[r]$$
                            -    \STATE $$i = p - 1$$
                            -    \FOR{$$j = p$$ \TO $$r - 1$$}
                            -        \IF{$$A[j] < x$$}
                            -            \STATE $$i = i + 1$$
                            -            \STATE exchange
                            -            $$A[i]$$ with $$A[j]$$
                            -        \ENDIF
                            -        \STATE exchange $$A[i]$$ with $$A[r]$$
                            -    \ENDFOR
                            -\ENDPROCEDURE
                            -\end{algorithmic}
                            -\end{algorithm}
                            -```
                            -

                            Generates:

                            % This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition)
                            -\begin{algorithm}
                            -\caption{Quicksort}
                            -\begin{algorithmic}
                            -\PROCEDURE{Quicksort}{$$A, p, r$$}
                            -    \IF{$$p < r$$}
                            -        \STATE $$q = $$ \CALL{Partition}{$$A, p, r$$}
                            -        \STATE \CALL{Quicksort}{$$A, p, q - 1$$}
                            -        \STATE \CALL{Quicksort}{$$A, q + 1, r$$}
                            -    \ENDIF
                            -\ENDPROCEDURE
                            -\PROCEDURE{Partition}{$$A, p, r$$}
                            -    \STATE $$x = A[r]$$
                            -    \STATE $$i = p - 1$$
                            -    \FOR{$$j = p$$ \TO $$r - 1$$}
                            -        \IF{$$A[j] < x$$}
                            -            \STATE $$i = i + 1$$
                            -            \STATE exchange
                            -            $$A[i]$$ with $$A[j]$$
                            -        \ENDIF
                            -        \STATE exchange $$A[i]$$ with $$A[r]$$
                            -    \ENDFOR
                            -\ENDPROCEDURE
                            -\end{algorithmic}
                            -\end{algorithm}
                            -



                              Enjoy Reading This Article?

                              Here are some more articles you might like to read next:

                            • Who am I?
                            • El Camino
                            • Between runs and hikes
                            • Harder than expected
                            • The Plan
                            • \ No newline at end of file diff --git a/blog/2024/simple_story/index.html b/blog/2024/simple_story/index.html new file mode 100644 index 0000000..56af288 --- /dev/null +++ b/blog/2024/simple_story/index.html @@ -0,0 +1 @@ + My academic story | Alejandro Gomez Espinosa Ph.D.

                              My academic story

                              Ecuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets, specially in the boosted regime.

                              The short version

                              I come from South America, Ecuador specifically, but I have been outside my beautiful country for a while now. The reason? I am in love with science, and unfortunately, I cannot do what I am passionate about in my own country. What am I passionate about? Well, that’s easy. I am passionate about particle physics, experimental particle physics specifically. At a young age, I read about CERN and the goals that they were pursuing, and I got fascinated. After that, it was decided that I wanted to work at CERN, and I wanted to become a particle physicist.

                              However, becoming a scientist is not as easy as you might think, especially coming from developing countries. Being smart or capable is not enough. In my experience, being in the right place at the right time is equally crucial as being smart.

                              Fortunately for me, I had the luck of meeting friendly, brilliant, and selfless people who helped me on my way through. Working like there is no tomorrow, luck, and meeting the right people are what made me the person I am today. And I am not even halfway through this journey!

                              My academic life

                              My Postdoctoral Research

                              drawing

                              Carnegie Mellon University - USA

                              I am currently studying the self-interaction of the Higgs boson in the di-Higgs production channel. Measuring the Higgs self-interaction is crucial for understanding the stability of the Higgs potential and has significant implications for physics beyond the Standard Model. My research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel.

                              Additionally, I have a strong interest in workflow orchestration tools and analysis reproducibility. I have been advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA.

                              drawing

                              Eidgenössische Technische Hochschule Zürich (ETH-Zurich) - Switzerland

                              I studied the production of top quarks and the Higgs boson, focusing on the semileptonic and dileptonic decay channels of the top quarks and the decay of the Higgs boson into a pair of b-quarks at high transverse momentum. Additionally, my research concentrated on jets. I led efforts within the CMS collaboration on jet algorithms, jet substructure, tagging tools, and pileup mitigation techniques in the CMS trigger. I also worked on unfolding data related to high transverse momentum jets.

                              My Graduate Research

                              drawing

                              Rutgers, The State University of New Jersey - USA

                              My research focused on boosted jets during Run II of the LHC, supervised by Prof. Eva Halkiadakis. Typically, when a particle decays into two quarks at rest or with low momentum, the resulting particle showers (jets) can be reconstructed separately. However, for boosted particles (those not produced at rest), the decay products are more collimated, appearing as a single jet. I studied these boosted objects to distinguish between regular jets and those with internal substructure.

                              From a theoretical perspective, I explored a variation of supersymmetry (SUSY). In the Minimal Supersymmetric Standard Model (MSSM), each SUSY particle decays into another SUSY particle and a Standard Model (SM) particle, conserving R-parity. However, if R-parity is violated (RPV), a SUSY particle may decay into two SM particles. For more detailed information, please refer to the SUSY Primer. Link to thesis.

                              My Undergraduate Research

                              drawing

                              Escuela Politécnica Nacional - Ecuador For my undergraduate thesis, I searched for exotic particles, specifically colorons decaying into a pair of top quarks, resulting in a final state with four top quarks. This project was supervised by Dr. Francisco Yumiceva (Fermilab, currently at FIT). I conducted this analysis from scratch: generating a private production of a pair of heavy scalar bosons in Madgraph5, hadronizing my sample with Pythia8, passing it through CMSSW Fast Simulation, comparing the signal with background and data, and determining the best strategy to analyze my signal. Two analyses were performed: a simple cut-and-count analysis and a multivariate analysis using Boosted Decision Trees. Ultimately, we established the first limits on Standard Model four-top quark production and the pair production of the heavy scalar boson GH. Link to thesis.

                              My CV in PDF




                                Enjoy Reading This Article?

                                Here are some more articles you might like to read next:

                              • Who am I?
                              • El Camino
                              • Between runs and hikes
                              • Harder than expected
                              • The Plan
                              • \ No newline at end of file diff --git a/blog/2024/tabs/index.html b/blog/2024/tabs/index.html deleted file mode 100644 index 61d9bcc..0000000 --- a/blog/2024/tabs/index.html +++ /dev/null @@ -1,25 +0,0 @@ - a post with tabs | Alejandro Gomez Espinosa Ph.D.

                                a post with tabs

                                This is how a post with tabs looks like. Note that the tabs could be used for different purposes, not only for code.

                                First tabs

                                To add tabs, use the following syntax:

                                {% tabs group-name %}
                                -
                                -{% tab group-name tab-name-1 %}
                                -
                                -Content 1
                                -
                                -{% endtab %}
                                -
                                -{% tab group-name tab-name-2 %}
                                -
                                -Content 2
                                -
                                -{% endtab %}
                                -
                                -{% endtabs %}
                                -

                                With this you can generate visualizations like:

                                • var_dump('hello');
                                  -
                                • console.log("hello");
                                  -
                                • pputs 'hello'
                                  -

                                Another example

                                • hello:
                                  -  - "whatsup"
                                  -  - "hi"
                                  -
                                • {
                                  -  "hello": ["whatsup", "hi"]
                                  -}
                                  -

                                Tabs for something else

                                • Regular text

                                • A quote

                                • Hipster list

                                  • brunch
                                  • fixie
                                  • raybans
                                  • messenger bag



                                  Enjoy Reading This Article?

                                  Here are some more articles you might like to read next:

                                • Who am I?
                                • El Camino
                                • Between runs and hikes
                                • Harder than expected
                                • The Plan
                                • \ No newline at end of file diff --git a/blog/2024/typograms/index.html b/blog/2024/typograms/index.html deleted file mode 100644 index 264ff0f..0000000 --- a/blog/2024/typograms/index.html +++ /dev/null @@ -1,55 +0,0 @@ - a post with typograms | Alejandro Gomez Espinosa Ph.D.

                                  a post with typograms

                                  This is an example post with some typograms code.

                                  ```typograms
                                  -+----+
                                  -|    |---> My first diagram!
                                  -+----+
                                  -```
                                  -

                                  Which generates:

                                  +----+
                                  -|    |---> My first diagram!
                                  -+----+
                                  -

                                  Another example:

                                  ```typograms
                                  -.------------------------.
                                  -|.----------------------.|
                                  -||"https://example.com" ||
                                  -|'----------------------'|
                                  -| ______________________ |
                                  -||                      ||
                                  -||   Welcome!           ||
                                  -||                      ||
                                  -||                      ||
                                  -||  .----------------.  ||
                                  -||  | username       |  ||
                                  -||  '----------------'  ||
                                  -||  .----------------.  ||
                                  -||  |"*******"       |  ||
                                  -||  '----------------'  ||
                                  -||                      ||
                                  -||  .----------------.  ||
                                  -||  |   "Sign-up"    |  ||
                                  -||  '----------------'  ||
                                  -||                      ||
                                  -|+----------------------+|
                                  -.------------------------.
                                  -```
                                  -

                                  which generates:

                                  .------------------------.
                                  -|.----------------------.|
                                  -||"https://example.com" ||
                                  -|'----------------------'|
                                  -| ______________________ |
                                  -||                      ||
                                  -||   Welcome!           ||
                                  -||                      ||
                                  -||                      ||
                                  -||  .----------------.  ||
                                  -||  | username       |  ||
                                  -||  '----------------'  ||
                                  -||  .----------------.  ||
                                  -||  |"*******"       |  ||
                                  -||  '----------------'  ||
                                  -||                      ||
                                  -||  .----------------.  ||
                                  -||  |   "Sign-up"    |  ||
                                  -||  '----------------'  ||
                                  -||                      ||
                                  -|+----------------------+|
                                  -.------------------------.
                                  -

                                  For more examples, check out the typograms documentation.




                                    Enjoy Reading This Article?

                                    Here are some more articles you might like to read next:

                                  • Who am I?
                                  • El Camino
                                  • Between runs and hikes
                                  • Harder than expected
                                  • The Plan
                                  • \ No newline at end of file diff --git a/blog/2024/vega-lite/index.html b/blog/2024/vega-lite/index.html deleted file mode 100644 index 713d91f..0000000 --- a/blog/2024/vega-lite/index.html +++ /dev/null @@ -1,83 +0,0 @@ - a post with vega lite | Alejandro Gomez Espinosa Ph.D.

                                    a post with vega lite

                                    This is an example post with some vega lite code.

                                    ```vega_lite
                                    -{
                                    -  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
                                    -  "description": "A dot plot showing each movie in the database, and the difference from the average movie rating. The display is sorted by year to visualize everything in sequential order. The graph is for all Movies before 2019.",
                                    -  "data": {
                                    -    "url": "https://raw.githubusercontent.com/vega/vega/main/docs/data/movies.json"
                                    -  },
                                    -  "transform": [
                                    -    {"filter": "datum['IMDB Rating'] != null"},
                                    -    {"filter": {"timeUnit": "year", "field": "Release Date", "range": [null, 2019]}},
                                    -    {
                                    -      "joinaggregate": [{
                                    -        "op": "mean",
                                    -        "field": "IMDB Rating",
                                    -        "as": "AverageRating"
                                    -      }]
                                    -    },
                                    -    {
                                    -      "calculate": "datum['IMDB Rating'] - datum.AverageRating",
                                    -      "as": "RatingDelta"
                                    -    }
                                    -  ],
                                    -  "mark": "point",
                                    -  "encoding": {
                                    -    "x": {
                                    -      "field": "Release Date",
                                    -      "type": "temporal"
                                    -    },
                                    -    "y": {
                                    -      "field": "RatingDelta",
                                    -      "type": "quantitative",
                                    -      "title": "Rating Delta"
                                    -    },
                                    -    "color": {
                                    -      "field": "RatingDelta",
                                    -      "type": "quantitative",
                                    -      "scale": {"domainMid": 0},
                                    -      "title": "Rating Delta"
                                    -    }
                                    -  }
                                    -}
                                    -```
                                    -

                                    Which generates:

                                    {
                                    -  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
                                    -  "description": "A dot plot showing each movie in the database, and the difference from the average movie rating. The display is sorted by year to visualize everything in sequential order. The graph is for all Movies before 2019.",
                                    -  "data": {
                                    -    "url": "https://raw.githubusercontent.com/vega/vega/main/docs/data/movies.json"
                                    -  },
                                    -  "transform": [
                                    -    {"filter": "datum['IMDB Rating'] != null"},
                                    -    {"filter": {"timeUnit": "year", "field": "Release Date", "range": [null, 2019]}},
                                    -    {
                                    -      "joinaggregate": [{
                                    -        "op": "mean",
                                    -        "field": "IMDB Rating",
                                    -        "as": "AverageRating"
                                    -      }]
                                    -    },
                                    -    {
                                    -      "calculate": "datum['IMDB Rating'] - datum.AverageRating",
                                    -      "as": "RatingDelta"
                                    -    }
                                    -  ],
                                    -  "mark": "point",
                                    -  "encoding": {
                                    -    "x": {
                                    -      "field": "Release Date",
                                    -      "type": "temporal"
                                    -    },
                                    -    "y": {
                                    -      "field": "RatingDelta",
                                    -      "type": "quantitative",
                                    -      "title": "Rating Delta"
                                    -    },
                                    -    "color": {
                                    -      "field": "RatingDelta",
                                    -      "type": "quantitative",
                                    -      "scale": {"domainMid": 0},
                                    -      "title": "Rating Delta"
                                    -    }
                                    -  }
                                    -}
                                    -

                                    This plot supports both light and dark themes.




                                      Enjoy Reading This Article?

                                      Here are some more articles you might like to read next:

                                    • Who am I?
                                    • El Camino
                                    • Between runs and hikes
                                    • Harder than expected
                                    • The Plan
                                    • \ No newline at end of file diff --git a/blog/category/bio-posts/index.html b/blog/category/bio-posts/index.html new file mode 100644 index 0000000..20bdf93 --- /dev/null +++ b/blog/category/bio-posts/index.html @@ -0,0 +1 @@ + bio-posts | Alejandro Gomez Espinosa Ph.D.

                                      bio-posts

                                      an archive of posts in this category

                                      \ No newline at end of file diff --git a/blog/category/external-services/index.html b/blog/category/external-services/index.html deleted file mode 100644 index b92a519..0000000 --- a/blog/category/external-services/index.html +++ /dev/null @@ -1 +0,0 @@ - external-services | Alejandro Gomez Espinosa Ph.D.

                                      external-services

                                      an archive of posts in this category

                                      \ No newline at end of file diff --git a/blog/category/sample-posts/index.html b/blog/category/sample-posts/index.html deleted file mode 100644 index 3c1487b..0000000 --- a/blog/category/sample-posts/index.html +++ /dev/null @@ -1 +0,0 @@ - sample-posts | Alejandro Gomez Espinosa Ph.D.

                                      sample-posts

                                      an archive of posts in this category

                                      \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 7a6c7fd..f30cb6d 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1 +1 @@ - blog | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file + blog | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey

                                      \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index 6f4ea96..6dd1a77 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -1 +1 @@ - blog - page 2 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file + blog - page 2 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey

                                      \ No newline at end of file diff --git a/blog/page/3/index.html b/blog/page/3/index.html deleted file mode 100644 index 83b3e3d..0000000 --- a/blog/page/3/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 3 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/page/4/index.html b/blog/page/4/index.html deleted file mode 100644 index 9e9e328..0000000 --- a/blog/page/4/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 4 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/page/5/index.html b/blog/page/5/index.html deleted file mode 100644 index 39c37d4..0000000 --- a/blog/page/5/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 5 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/page/6/index.html b/blog/page/6/index.html deleted file mode 100644 index 7d2ba86..0000000 --- a/blog/page/6/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 6 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/page/7/index.html b/blog/page/7/index.html deleted file mode 100644 index e3c9743..0000000 --- a/blog/page/7/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 7 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/page/8/index.html b/blog/page/8/index.html deleted file mode 100644 index 396aff6..0000000 --- a/blog/page/8/index.html +++ /dev/null @@ -1 +0,0 @@ - blog - page 8 | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind

                                      An ongoing journey



                                      \ No newline at end of file diff --git a/blog/tag/audios/index.html b/blog/tag/audios/index.html deleted file mode 100644 index 8162058..0000000 --- a/blog/tag/audios/index.html +++ /dev/null @@ -1 +0,0 @@ - audios | Alejandro Gomez Espinosa Ph.D.

                                      audios

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/bib/index.html b/blog/tag/bib/index.html deleted file mode 100644 index 5df18f9..0000000 --- a/blog/tag/bib/index.html +++ /dev/null @@ -1 +0,0 @@ - bib | Alejandro Gomez Espinosa Ph.D.

                                      bib

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/bio/index.html b/blog/tag/bio/index.html new file mode 100644 index 0000000..2f22d57 --- /dev/null +++ b/blog/tag/bio/index.html @@ -0,0 +1 @@ + bio | Alejandro Gomez Espinosa Ph.D.

                                      bio

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/blockquotes/index.html b/blog/tag/blockquotes/index.html deleted file mode 100644 index a37efae..0000000 --- a/blog/tag/blockquotes/index.html +++ /dev/null @@ -1 +0,0 @@ - blockquotes | Alejandro Gomez Espinosa Ph.D.

                                      blockquotes

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/charts/index.html b/blog/tag/charts/index.html deleted file mode 100644 index 196af99..0000000 --- a/blog/tag/charts/index.html +++ /dev/null @@ -1 +0,0 @@ - charts | Alejandro Gomez Espinosa Ph.D.

                                      charts

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/citation/index.html b/blog/tag/citation/index.html deleted file mode 100644 index 1027e2c..0000000 --- a/blog/tag/citation/index.html +++ /dev/null @@ -1 +0,0 @@ - citation | Alejandro Gomez Espinosa Ph.D.

                                      citation

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/code/index.html b/blog/tag/code/index.html deleted file mode 100644 index cd8214f..0000000 --- a/blog/tag/code/index.html +++ /dev/null @@ -1 +0,0 @@ - code | Alejandro Gomez Espinosa Ph.D.

                                      code

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/comments/index.html b/blog/tag/comments/index.html deleted file mode 100644 index 8ee7202..0000000 --- a/blog/tag/comments/index.html +++ /dev/null @@ -1 +0,0 @@ - comments | Alejandro Gomez Espinosa Ph.D.

                                      comments

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/diagrams/index.html b/blog/tag/diagrams/index.html deleted file mode 100644 index 1babd4c..0000000 --- a/blog/tag/diagrams/index.html +++ /dev/null @@ -1 +0,0 @@ - diagrams | Alejandro Gomez Espinosa Ph.D.

                                      diagrams

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/distill/index.html b/blog/tag/distill/index.html deleted file mode 100644 index 42bab99..0000000 --- a/blog/tag/distill/index.html +++ /dev/null @@ -1 +0,0 @@ - distill | Alejandro Gomez Espinosa Ph.D.

                                      distill

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/formatting/index.html b/blog/tag/formatting/index.html deleted file mode 100644 index 89b5eba..0000000 --- a/blog/tag/formatting/index.html +++ /dev/null @@ -1 +0,0 @@ - formatting | Alejandro Gomez Espinosa Ph.D.

                                      formatting

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/images/index.html b/blog/tag/images/index.html deleted file mode 100644 index fc9e7ce..0000000 --- a/blog/tag/images/index.html +++ /dev/null @@ -1 +0,0 @@ - images | Alejandro Gomez Espinosa Ph.D.

                                      images

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/jupyter/index.html b/blog/tag/jupyter/index.html deleted file mode 100644 index f1db958..0000000 --- a/blog/tag/jupyter/index.html +++ /dev/null @@ -1 +0,0 @@ - jupyter | Alejandro Gomez Espinosa Ph.D.

                                      jupyter

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/links/index.html b/blog/tag/links/index.html deleted file mode 100644 index 5dd2a25..0000000 --- a/blog/tag/links/index.html +++ /dev/null @@ -1 +0,0 @@ - links | Alejandro Gomez Espinosa Ph.D.

                                      links

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/maps/index.html b/blog/tag/maps/index.html deleted file mode 100644 index 0ed5add..0000000 --- a/blog/tag/maps/index.html +++ /dev/null @@ -1 +0,0 @@ - maps | Alejandro Gomez Espinosa Ph.D.

                                      maps

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/math/index.html b/blog/tag/math/index.html deleted file mode 100644 index 808fb77..0000000 --- a/blog/tag/math/index.html +++ /dev/null @@ -1 +0,0 @@ - math | Alejandro Gomez Espinosa Ph.D.

                                      math

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/sidebar/index.html b/blog/tag/sidebar/index.html deleted file mode 100644 index f575a8d..0000000 --- a/blog/tag/sidebar/index.html +++ /dev/null @@ -1 +0,0 @@ - sidebar | Alejandro Gomez Espinosa Ph.D.

                                      sidebar

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/tables/index.html b/blog/tag/tables/index.html deleted file mode 100644 index 83f686d..0000000 --- a/blog/tag/tables/index.html +++ /dev/null @@ -1 +0,0 @@ - tables | Alejandro Gomez Espinosa Ph.D.

                                      tables

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/toc/index.html b/blog/tag/toc/index.html deleted file mode 100644 index 86b5b5f..0000000 --- a/blog/tag/toc/index.html +++ /dev/null @@ -1 +0,0 @@ - toc | Alejandro Gomez Espinosa Ph.D.

                                      toc

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/blog/tag/videos/index.html b/blog/tag/videos/index.html deleted file mode 100644 index d2c8f9f..0000000 --- a/blog/tag/videos/index.html +++ /dev/null @@ -1 +0,0 @@ - videos | Alejandro Gomez Espinosa Ph.D.

                                      videos

                                      an archive of posts with this tag

                                      \ No newline at end of file diff --git a/cv/index.html b/cv/index.html index 52f4faa..4c4833b 100644 --- a/cv/index.html +++ b/cv/index.html @@ -1 +1 @@ - cv | Alejandro Gomez Espinosa Ph.D.

                                      cv

                                      Basics

                                      Name Alejandro Gomez Espinosa
                                      Label Experimental Particle Physicist
                                      Email alejandro.gomez@cern.ch
                                      Url https://alefisico.github.io/
                                      Summary Ecuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets and di-Higgs searches. I am also interested in workflow orchestration and continuous integration tools.

                                      Work

                                      • 2023.010 - Present
                                        Postdoctoral Research Associate
                                        Carnegie Mellon University
                                        Studying the self-interaction of the Higgs boson in the di-Higgs production channel. Research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel. Additionally, working on workflow orchestration tools and analysis reproducibility. Advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA
                                        • Di-Higgs self-interaction
                                        • Four b-quark decay channel
                                        • Workflow orchestration
                                        • Continuous integration
                                      • 2018.04 - 2023.10
                                        Postdoctoral Researcher
                                        Institute for Particle and Astrophysics, ETH-Zurich
                                        Lead the measurements for the ttH production in the H(bb) channel using Run II data from CMS, particularly in the boosted regime. Additionally leading the measurements of jet substructure observables in different high transverse momentum jet environments. Moreover, I have significant contributions in commissioning and calibration of boosted taggers for heavy resonances and pileup mitigation techniques at high trigger level for Run III
                                        • ttHbb measurement
                                        • Jet substructure measurements
                                        • Boosted taggers commissioning
                                        • Pileup mitigation techniques

                                      Education

                                      • 2012.09 - 2018.04

                                        New Brunskwick, NJ

                                        PhD
                                        Rutgers, The State University of New Jersey
                                        Experimental Particle Physics
                                        • Experimental Particle Physics
                                      • 2006.09 - 2012.09

                                        Quito

                                        Bachelor
                                        Escuela Politecnica Nacional
                                        Bachelor of Physics
                                        • Physics

                                      Awards

                                      • 1921.11.01
                                        Nobel Prize in Physics
                                        Royal Swedish Academy of Sciences
                                        The Nobel Prizes are five separate prizes that, according to Alfred Nobel's will of 1895, are awarded to 'those who, during the preceding year, have conferred the greatest benefit to humankind.'

                                      Certificates

                                      Quantum Teleportation
                                      Stanford University 2018-01-01
                                      Quantum Communication
                                      Stanford University 2018-01-01
                                      Quantum Cryptography
                                      Stanford University 2018-01-01
                                      Quantum Information
                                      Stanford University 2018-01-01
                                      Quantum Computing
                                      Stanford University 2018-01-01
                                      Machine Learning
                                      Stanford University 2018-01-01

                                      Publications

                                      • 1916.03.20
                                        Die Grundlage der allgemeinen Relativitätstheorie
                                        Annalen der Physik
                                        The publication of the theory of general relativity made him internationally famous. He was professor of physics at the universities of Zurich (1909–1911) and Prague (1911–1912), before he returned to ETH Zurich (1912–1914).
                                      • 1905.06.30
                                        Zur Elektrody/namik bewegter Körper
                                        Annalen der Physik
                                        It concerned an interpretation of the Michelson–Morley experiment and the properties of light and time. Special relativity incorporates the principle that the speed of light is the same for all inertial observers regardless of the state of motion of the source.
                                      • 1905.03.18
                                        Über einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt
                                        Annalen der Physik
                                        In the second paper, he applied the quantum theory to light to explain the photoelectric effect. In particular, he used the idea of light quanta (photons) to explain experimental results, but stressed the importance of the experimental results. The importance of his work on the photoelectric effect earned him the Nobel Prize in Physics in 1921.

                                      Skills

                                      Physics
                                      Quantum Mechanics
                                      Quantum Computing
                                      Quantum Information
                                      Quantum Cryptography
                                      Quantum Communication
                                      Quantum Teleportation

                                      Languages

                                      Spanish
                                      Native speaker
                                      English
                                      Fluent

                                      Interests

                                      Physics
                                      Jet Physics
                                      Di-Higgs Physics

                                      Projects

                                      • 2018.01 - 2018.01
                                        Quantum Computing
                                        Quantum computing is the use of quantum-mechanical phenomena such as superposition and entanglement to perform computation. Computers that perform quantum computations are known as quantum computers.
                                        • Quantum Teleportation
                                        • Quantum Cryptography
                                      \ No newline at end of file + cv | Alejandro Gomez Espinosa Ph.D.

                                      cv

                                      Basics

                                      Name Alejandro Gomez Espinosa
                                      Label Experimental Particle Physicist
                                      Email alejandro.gomez@cern.ch
                                      Url https://alefisico.github.io/
                                      Summary Ecuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets and di-Higgs searches. I am also interested in workflow orchestration and continuous integration tools.

                                      Work

                                      • 2023.010 - Present
                                        Postdoctoral Research Associate
                                        Carnegie Mellon University
                                        Studying the self-interaction of the Higgs boson in the di-Higgs production channel. Research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel. Additionally, working on workflow orchestration tools and analysis reproducibility. Advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA
                                        • Di-Higgs self-interaction
                                        • Four b-quark decay channel
                                        • Workflow orchestration
                                        • Continuous integration
                                      • 2018.04 - 2023.10
                                        Postdoctoral Researcher
                                        Institute for Particle and Astrophysics, ETH-Zurich
                                        Lead the measurements for the ttH production in the H(bb) channel using Run II data from CMS, particularly in the boosted regime. Additionally leading the measurements of jet substructure observables in different high transverse momentum jet environments. Moreover, I have significant contributions in commissioning and calibration of boosted taggers for heavy resonances and pileup mitigation techniques at high trigger level for Run III
                                        • ttHbb measurement
                                        • Jet substructure measurements
                                        • Boosted taggers commissioning
                                        • Pileup mitigation techniques

                                      Education

                                      • 2012.09 - 2018.04

                                        New Brunskwick, NJ

                                        PhD
                                        Rutgers, The State University of New Jersey
                                        Experimental Particle Physics
                                        • Experimental Particle Physics
                                      • 2006.09 - 2012.09

                                        Quito

                                        Bachelor
                                        Escuela Politecnica Nacional
                                        Bachelor of Physics
                                        • Physics

                                      Certificates

                                      Enologist
                                      Euroinnova Business School 2024-01-20
                                      Deep Learning
                                      Coursera, DeepLearning AI 2022-01-20
                                      Sport Performance Analytics Specialization
                                      Coursera, University of Michigan 2021-09-01

                                      Skills

                                      Computing Languages
                                      Python
                                      Git, Gitlab CI/CD
                                      Snakemake
                                      Data Analysis
                                      Statistical Data Analysis

                                      Languages

                                      Spanish
                                      Native speaker
                                      English
                                      Fluent

                                      Interests

                                      Physics
                                      Jet Physics
                                      Di-Higgs Physics
                                      Reproducibility
                                      Workflow Orchestration
                                      \ No newline at end of file diff --git a/feed.xml b/feed.xml index 28859cf..2a7707e 100644 --- a/feed.xml +++ b/feed.xml @@ -1,935 +1 @@ -Jekyll2024-12-13T14:57:05+00:00https://alefisico.github.io/feed.xmlblankThis is my personal website. Experimental Particle Physicist, CERN. a post with tabs2024-05-01T00:32:13+00:002024-05-01T00:32:13+00:00https://alefisico.github.io/blog/2024/tabsThis is how a post with tabs looks like. Note that the tabs could be used for different purposes, not only for code.

                                      First tabs

                                      To add tabs, use the following syntax:

                                      {% tabs group-name %}
                                      -
                                      -{% tab group-name tab-name-1 %}
                                      -
                                      -Content 1
                                      -
                                      -{% endtab %}
                                      -
                                      -{% tab group-name tab-name-2 %}
                                      -
                                      -Content 2
                                      -
                                      -{% endtab %}
                                      -
                                      -{% endtabs %}
                                      -

                                      With this you can generate visualizations like:

                                      • var_dump('hello');
                                        -
                                      • console.log("hello");
                                        -
                                      • pputs 'hello'
                                        -

                                      Another example

                                      • hello:
                                        -  - "whatsup"
                                        -  - "hi"
                                        -
                                      • {
                                        -  "hello": ["whatsup", "hi"]
                                        -}
                                        -

                                      Tabs for something else

                                      • Regular text

                                      • A quote

                                      • Hipster list

                                        • brunch
                                        • fixie
                                        • raybans
                                        • messenger bag
                                      ]]>
                                      a post with typograms2024-04-29T23:36:10+00:002024-04-29T23:36:10+00:00https://alefisico.github.io/blog/2024/typogramsThis is an example post with some typograms code.

                                      ```typograms
                                      -+----+
                                      -|    |---> My first diagram!
                                      -+----+
                                      -```
                                      -

                                      Which generates:

                                      +----+
                                      -|    |---> My first diagram!
                                      -+----+
                                      -

                                      Another example:

                                      ```typograms
                                      -.------------------------.
                                      -|.----------------------.|
                                      -||"https://example.com" ||
                                      -|'----------------------'|
                                      -| ______________________ |
                                      -||                      ||
                                      -||   Welcome!           ||
                                      -||                      ||
                                      -||                      ||
                                      -||  .----------------.  ||
                                      -||  | username       |  ||
                                      -||  '----------------'  ||
                                      -||  .----------------.  ||
                                      -||  |"*******"       |  ||
                                      -||  '----------------'  ||
                                      -||                      ||
                                      -||  .----------------.  ||
                                      -||  |   "Sign-up"    |  ||
                                      -||  '----------------'  ||
                                      -||                      ||
                                      -|+----------------------+|
                                      -.------------------------.
                                      -```
                                      -

                                      which generates:

                                      .------------------------.
                                      -|.----------------------.|
                                      -||"https://example.com" ||
                                      -|'----------------------'|
                                      -| ______________________ |
                                      -||                      ||
                                      -||   Welcome!           ||
                                      -||                      ||
                                      -||                      ||
                                      -||  .----------------.  ||
                                      -||  | username       |  ||
                                      -||  '----------------'  ||
                                      -||  .----------------.  ||
                                      -||  |"*******"       |  ||
                                      -||  '----------------'  ||
                                      -||                      ||
                                      -||  .----------------.  ||
                                      -||  |   "Sign-up"    |  ||
                                      -||  '----------------'  ||
                                      -||                      ||
                                      -|+----------------------+|
                                      -.------------------------.
                                      -

                                      For more examples, check out the typograms documentation.

                                      ]]>
                                      a post that can be cited2024-04-28T15:06:00+00:002024-04-28T15:06:00+00:00https://alefisico.github.io/blog/2024/post-citationThis is an example post that can be cited. The content of the post ends here, while the citation information is automatically provided below. The only thing needed is for you to set the citation key in the front matter to true.

                                      ]]>
                                      a post with pseudo code2024-04-15T00:01:00+00:002024-04-15T00:01:00+00:00https://alefisico.github.io/blog/2024/pseudocodeThis is an example post with some pseudo code rendered by pseudocode. The example presented here is the same as the one in the pseudocode.js documentation, with only one simple but important change: everytime you would use $, you should use $$ instead. Also, note that the pseudocode key in the front matter is set to true to enable the rendering of pseudo code. As an example, using this code:

                                      ```pseudocode
                                      -% This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition)
                                      -\begin{algorithm}
                                      -\caption{Quicksort}
                                      -\begin{algorithmic}
                                      -\PROCEDURE{Quicksort}{$$A, p, r$$}
                                      -    \IF{$$p < r$$}
                                      -        \STATE $$q = $$ \CALL{Partition}{$$A, p, r$$}
                                      -        \STATE \CALL{Quicksort}{$$A, p, q - 1$$}
                                      -        \STATE \CALL{Quicksort}{$$A, q + 1, r$$}
                                      -    \ENDIF
                                      -\ENDPROCEDURE
                                      -\PROCEDURE{Partition}{$$A, p, r$$}
                                      -    \STATE $$x = A[r]$$
                                      -    \STATE $$i = p - 1$$
                                      -    \FOR{$$j = p$$ \TO $$r - 1$$}
                                      -        \IF{$$A[j] < x$$}
                                      -            \STATE $$i = i + 1$$
                                      -            \STATE exchange
                                      -            $$A[i]$$ with $$A[j]$$
                                      -        \ENDIF
                                      -        \STATE exchange $$A[i]$$ with $$A[r]$$
                                      -    \ENDFOR
                                      -\ENDPROCEDURE
                                      -\end{algorithmic}
                                      -\end{algorithm}
                                      -```
                                      -

                                      Generates:

                                      % This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition)
                                      -\begin{algorithm}
                                      -\caption{Quicksort}
                                      -\begin{algorithmic}
                                      -\PROCEDURE{Quicksort}{$$A, p, r$$}
                                      -    \IF{$$p < r$$}
                                      -        \STATE $$q = $$ \CALL{Partition}{$$A, p, r$$}
                                      -        \STATE \CALL{Quicksort}{$$A, p, q - 1$$}
                                      -        \STATE \CALL{Quicksort}{$$A, q + 1, r$$}
                                      -    \ENDIF
                                      -\ENDPROCEDURE
                                      -\PROCEDURE{Partition}{$$A, p, r$$}
                                      -    \STATE $$x = A[r]$$
                                      -    \STATE $$i = p - 1$$
                                      -    \FOR{$$j = p$$ \TO $$r - 1$$}
                                      -        \IF{$$A[j] < x$$}
                                      -            \STATE $$i = i + 1$$
                                      -            \STATE exchange
                                      -            $$A[i]$$ with $$A[j]$$
                                      -        \ENDIF
                                      -        \STATE exchange $$A[i]$$ with $$A[r]$$
                                      -    \ENDFOR
                                      -\ENDPROCEDURE
                                      -\end{algorithmic}
                                      -\end{algorithm}
                                      -
                                      ]]>
                                      a post with code diff2024-01-27T19:22:00+00:002024-01-27T19:22:00+00:00https://alefisico.github.io/blog/2024/code-diffYou can display diff code by using the regular markdown syntax:

                                      ```diff
                                      -diff --git a/sample.js b/sample.js
                                      -index 0000001..0ddf2ba
                                      ---- a/sample.js
                                      -+++ b/sample.js
                                      -@@ -1 +1 @@
                                      --console.log("Hello World!")
                                      -+console.log("Hello from Diff2Html!")
                                      -```
                                      -

                                      Which generates:

                                      diff --git a/sample.js b/sample.js
                                      -index 0000001..0ddf2ba
                                      ---- a/sample.js
                                      -+++ b/sample.js
                                      -@@ -1 +1 @@
                                      --console.log("Hello World!")
                                      -+console.log("Hello from Diff2Html!")
                                      -

                                      But this is difficult to read, specially if you have a large diff. You can use diff2html to display a more readable version of the diff. For this, just use diff2html instead of diff for the code block language:

                                      ```diff2html
                                      -diff --git a/sample.js b/sample.js
                                      -index 0000001..0ddf2ba
                                      ---- a/sample.js
                                      -+++ b/sample.js
                                      -@@ -1 +1 @@
                                      --console.log("Hello World!")
                                      -+console.log("Hello from Diff2Html!")
                                      -```
                                      -

                                      If we use a longer example, for example this commit from diff2html, it will generate the following output:

                                      From 2aaae31cc2a37bfff83430c2c914b140bee59b6a Mon Sep 17 00:00:00 2001
                                      -From: Rodrigo Fernandes <rtfrodrigo@gmail.com>
                                      -Date: Sun, 9 Oct 2016 16:41:54 +0100
                                      -Subject: [PATCH 1/2] Initial template override support
                                      -
                                      ----
                                      - scripts/hulk.js                    |  4 ++--
                                      - src/diff2html.js                   |  3 +--
                                      - src/file-list-printer.js           | 11 ++++++++---
                                      - src/hoganjs-utils.js               | 29 +++++++++++++++++------------
                                      - src/html-printer.js                |  6 ++++++
                                      - src/line-by-line-printer.js        |  6 +++++-
                                      - src/side-by-side-printer.js        |  6 +++++-
                                      - test/file-list-printer-tests.js    |  2 +-
                                      - test/hogan-cache-tests.js          | 18 +++++++++++++++---
                                      - test/line-by-line-tests.js         |  3 +--
                                      - test/side-by-side-printer-tests.js |  3 +--
                                      - 11 files changed, 62 insertions(+), 29 deletions(-)
                                      -
                                      -diff --git a/scripts/hulk.js b/scripts/hulk.js
                                      -index 5a793c18..a4b1a4d5 100755
                                      ---- a/scripts/hulk.js
                                      -+++ b/scripts/hulk.js
                                      -@@ -173,11 +173,11 @@ function namespace(name) {
                                      - // write a template foreach file that matches template extension
                                      - templates = extractFiles(options.argv.remain)
                                      -   .map(function(file) {
                                      --    var openedFile = fs.readFileSync(file, 'utf-8');
                                      -+    var openedFile = fs.readFileSync(file, 'utf-8').trim();
                                      -     var name;
                                      -     if (!openedFile) return;
                                      -     name = namespace(path.basename(file).replace(/\..*$/, ''));
                                      --    openedFile = removeByteOrderMark(openedFile.trim());
                                      -+    openedFile = removeByteOrderMark(openedFile);
                                      -     openedFile = wrap(file, name, openedFile);
                                      -     if (!options.outputdir) return openedFile;
                                      -     fs.writeFileSync(path.join(options.outputdir, name + '.js')
                                      -diff --git a/src/diff2html.js b/src/diff2html.js
                                      -index 21b0119e..64e138f5 100644
                                      ---- a/src/diff2html.js
                                      -+++ b/src/diff2html.js
                                      -@@ -7,7 +7,6 @@
                                      -
                                      - (function() {
                                      -   var diffParser = require('./diff-parser.js').DiffParser;
                                      --  var fileLister = require('./file-list-printer.js').FileListPrinter;
                                      -   var htmlPrinter = require('./html-printer.js').HtmlPrinter;
                                      -
                                      -   function Diff2Html() {
                                      -@@ -43,7 +42,7 @@
                                      -
                                      -     var fileList = '';
                                      -     if (configOrEmpty.showFiles === true) {
                                      --      fileList = fileLister.generateFileList(diffJson, configOrEmpty);
                                      -+      fileList = htmlPrinter.generateFileListSummary(diffJson, configOrEmpty);
                                      -     }
                                      -
                                      -     var diffOutput = '';
                                      -diff --git a/src/file-list-printer.js b/src/file-list-printer.js
                                      -index e408d9b2..1e0a2c61 100644
                                      ---- a/src/file-list-printer.js
                                      -+++ b/src/file-list-printer.js
                                      -@@ -8,11 +8,16 @@
                                      - (function() {
                                      -   var printerUtils = require('./printer-utils.js').PrinterUtils;
                                      -
                                      --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+  var hoganUtils;
                                      -+
                                      -   var baseTemplatesPath = 'file-summary';
                                      -   var iconsBaseTemplatesPath = 'icon';
                                      -
                                      --  function FileListPrinter() {
                                      -+  function FileListPrinter(config) {
                                      -+    this.config = config;
                                      -+
                                      -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+    hoganUtils = new HoganJsUtils(config);
                                      -   }
                                      -
                                      -   FileListPrinter.prototype.generateFileList = function(diffFiles) {
                                      -@@ -38,5 +43,5 @@
                                      -     });
                                      -   };
                                      -
                                      --  module.exports.FileListPrinter = new FileListPrinter();
                                      -+  module.exports.FileListPrinter = FileListPrinter;
                                      - })();
                                      -diff --git a/src/hoganjs-utils.js b/src/hoganjs-utils.js
                                      -index 9949e5fa..0dda08d7 100644
                                      ---- a/src/hoganjs-utils.js
                                      -+++ b/src/hoganjs-utils.js
                                      -@@ -8,18 +8,19 @@
                                      - (function() {
                                      -   var fs = require('fs');
                                      -   var path = require('path');
                                      --
                                      -   var hogan = require('hogan.js');
                                      -
                                      -   var hoganTemplates = require('./templates/diff2html-templates.js');
                                      -
                                      --  var templatesPath = path.resolve(__dirname, 'templates');
                                      -+  var extraTemplates;
                                      -
                                      --  function HoganJsUtils() {
                                      -+  function HoganJsUtils(configuration) {
                                      -+    this.config = configuration || {};
                                      -+    extraTemplates = this.config.templates || {};
                                      -   }
                                      -
                                      --  HoganJsUtils.prototype.render = function(namespace, view, params, configuration) {
                                      --    var template = this.template(namespace, view, configuration);
                                      -+  HoganJsUtils.prototype.render = function(namespace, view, params) {
                                      -+    var template = this.template(namespace, view);
                                      -     if (template) {
                                      -       return template.render(params);
                                      -     }
                                      -@@ -27,17 +28,16 @@
                                      -     return null;
                                      -   };
                                      -
                                      --  HoganJsUtils.prototype.template = function(namespace, view, configuration) {
                                      --    var config = configuration || {};
                                      -+  HoganJsUtils.prototype.template = function(namespace, view) {
                                      -     var templateKey = this._templateKey(namespace, view);
                                      -
                                      --    return this._getTemplate(templateKey, config);
                                      -+    return this._getTemplate(templateKey);
                                      -   };
                                      -
                                      --  HoganJsUtils.prototype._getTemplate = function(templateKey, config) {
                                      -+  HoganJsUtils.prototype._getTemplate = function(templateKey) {
                                      -     var template;
                                      -
                                      --    if (!config.noCache) {
                                      -+    if (!this.config.noCache) {
                                      -       template = this._readFromCache(templateKey);
                                      -     }
                                      -
                                      -@@ -53,6 +53,7 @@
                                      -
                                      -     try {
                                      -       if (fs.readFileSync) {
                                      -+        var templatesPath = path.resolve(__dirname, 'templates');
                                      -         var templatePath = path.join(templatesPath, templateKey);
                                      -         var templateContent = fs.readFileSync(templatePath + '.mustache', 'utf8');
                                      -         template = hogan.compile(templateContent);
                                      -@@ -66,12 +67,16 @@
                                      -   };
                                      -
                                      -   HoganJsUtils.prototype._readFromCache = function(templateKey) {
                                      --    return hoganTemplates[templateKey];
                                      -+    return extraTemplates[templateKey] || hoganTemplates[templateKey];
                                      -   };
                                      -
                                      -   HoganJsUtils.prototype._templateKey = function(namespace, view) {
                                      -     return namespace + '-' + view;
                                      -   };
                                      -
                                      --  module.exports.HoganJsUtils = new HoganJsUtils();
                                      -+  HoganJsUtils.prototype.compile = function(templateStr) {
                                      -+    return hogan.compile(templateStr);
                                      -+  };
                                      -+
                                      -+  module.exports.HoganJsUtils = HoganJsUtils;
                                      - })();
                                      -diff --git a/src/html-printer.js b/src/html-printer.js
                                      -index 585d5b66..13f83047 100644
                                      ---- a/src/html-printer.js
                                      -+++ b/src/html-printer.js
                                      -@@ -8,6 +8,7 @@
                                      - (function() {
                                      -   var LineByLinePrinter = require('./line-by-line-printer.js').LineByLinePrinter;
                                      -   var SideBySidePrinter = require('./side-by-side-printer.js').SideBySidePrinter;
                                      -+  var FileListPrinter = require('./file-list-printer.js').FileListPrinter;
                                      -
                                      -   function HtmlPrinter() {
                                      -   }
                                      -@@ -22,5 +23,10 @@
                                      -     return sideBySidePrinter.generateSideBySideJsonHtml(diffFiles);
                                      -   };
                                      -
                                      -+  HtmlPrinter.prototype.generateFileListSummary = function(diffJson, config) {
                                      -+    var fileListPrinter = new FileListPrinter(config);
                                      -+    return fileListPrinter.generateFileList(diffJson);
                                      -+  };
                                      -+
                                      -   module.exports.HtmlPrinter = new HtmlPrinter();
                                      - })();
                                      -diff --git a/src/line-by-line-printer.js b/src/line-by-line-printer.js
                                      -index b07eb53c..d230bedd 100644
                                      ---- a/src/line-by-line-printer.js
                                      -+++ b/src/line-by-line-printer.js
                                      -@@ -11,7 +11,8 @@
                                      -   var utils = require('./utils.js').Utils;
                                      -   var Rematch = require('./rematch.js').Rematch;
                                      -
                                      --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+  var hoganUtils;
                                      -+
                                      -   var genericTemplatesPath = 'generic';
                                      -   var baseTemplatesPath = 'line-by-line';
                                      -   var iconsBaseTemplatesPath = 'icon';
                                      -@@ -19,6 +20,9 @@
                                      -
                                      -   function LineByLinePrinter(config) {
                                      -     this.config = config;
                                      -+
                                      -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+    hoganUtils = new HoganJsUtils(config);
                                      -   }
                                      -
                                      -   LineByLinePrinter.prototype.makeFileDiffHtml = function(file, diffs) {
                                      -diff --git a/src/side-by-side-printer.js b/src/side-by-side-printer.js
                                      -index bbf1dc8d..5e3033b3 100644
                                      ---- a/src/side-by-side-printer.js
                                      -+++ b/src/side-by-side-printer.js
                                      -@@ -11,7 +11,8 @@
                                      -   var utils = require('./utils.js').Utils;
                                      -   var Rematch = require('./rematch.js').Rematch;
                                      -
                                      --  var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+  var hoganUtils;
                                      -+
                                      -   var genericTemplatesPath = 'generic';
                                      -   var baseTemplatesPath = 'side-by-side';
                                      -   var iconsBaseTemplatesPath = 'icon';
                                      -@@ -26,6 +27,9 @@
                                      -
                                      -   function SideBySidePrinter(config) {
                                      -     this.config = config;
                                      -+
                                      -+    var HoganJsUtils = require('./hoganjs-utils.js').HoganJsUtils;
                                      -+    hoganUtils = new HoganJsUtils(config);
                                      -   }
                                      -
                                      -   SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) {
                                      -diff --git a/test/file-list-printer-tests.js b/test/file-list-printer-tests.js
                                      -index a502a46f..60ea3208 100644
                                      ---- a/test/file-list-printer-tests.js
                                      -+++ b/test/file-list-printer-tests.js
                                      -@@ -1,6 +1,6 @@
                                      - var assert = require('assert');
                                      -
                                      --var fileListPrinter = require('../src/file-list-printer.js').FileListPrinter;
                                      -+var fileListPrinter = new (require('../src/file-list-printer.js').FileListPrinter)();
                                      -
                                      - describe('FileListPrinter', function() {
                                      -   describe('generateFileList', function() {
                                      -diff --git a/test/hogan-cache-tests.js b/test/hogan-cache-tests.js
                                      -index 190bf6f8..3bb754ac 100644
                                      ---- a/test/hogan-cache-tests.js
                                      -+++ b/test/hogan-cache-tests.js
                                      -@@ -1,6 +1,6 @@
                                      - var assert = require('assert');
                                      -
                                      --var HoganJsUtils = require('../src/hoganjs-utils.js').HoganJsUtils;
                                      -+var HoganJsUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)();
                                      - var diffParser = require('../src/diff-parser.js').DiffParser;
                                      -
                                      - describe('HoganJsUtils', function() {
                                      -@@ -21,16 +21,28 @@ describe('HoganJsUtils', function() {
                                      -       });
                                      -       assert.equal(emptyDiffHtml, result);
                                      -     });
                                      -+
                                      -     it('should render view without cache', function() {
                                      -       var result = HoganJsUtils.render('generic', 'empty-diff', {
                                      -         contentClass: 'd2h-code-line',
                                      -         diffParser: diffParser
                                      -       }, {noCache: true});
                                      --      assert.equal(emptyDiffHtml + '\n', result);
                                      -+      assert.equal(emptyDiffHtml, result);
                                      -     });
                                      -+
                                      -     it('should return null if template is missing', function() {
                                      --      var result = HoganJsUtils.render('generic', 'missing-template', {}, {noCache: true});
                                      -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)({noCache: true});
                                      -+      var result = hoganUtils.render('generic', 'missing-template', {});
                                      -       assert.equal(null, result);
                                      -     });
                                      -+
                                      -+    it('should allow templates to be overridden', function() {
                                      -+      var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                                      -+
                                      -+      var config = {templates: {'generic-empty-diff': emptyDiffTemplate}};
                                      -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                                      -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                                      -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                                      -+    });
                                      -   });
                                      - });
                                      -diff --git a/test/line-by-line-tests.js b/test/line-by-line-tests.js
                                      -index 1cd92073..8869b3df 100644
                                      ---- a/test/line-by-line-tests.js
                                      -+++ b/test/line-by-line-tests.js
                                      -@@ -14,7 +14,7 @@ describe('LineByLinePrinter', function() {
                                      -         '            File without changes\n' +
                                      -         '        </div>\n' +
                                      -         '    </td>\n' +
                                      --        '</tr>\n';
                                      -+        '</tr>';
                                      -
                                      -       assert.equal(expected, fileHtml);
                                      -     });
                                      -@@ -422,7 +422,6 @@ describe('LineByLinePrinter', function() {
                                      -         '        </div>\n' +
                                      -         '    </td>\n' +
                                      -         '</tr>\n' +
                                      --        '\n' +
                                      -         '                </tbody>\n' +
                                      -         '            </table>\n' +
                                      -         '        </div>\n' +
                                      -diff --git a/test/side-by-side-printer-tests.js b/test/side-by-side-printer-tests.js
                                      -index 76625f8e..771daaa5 100644
                                      ---- a/test/side-by-side-printer-tests.js
                                      -+++ b/test/side-by-side-printer-tests.js
                                      -@@ -14,7 +14,7 @@ describe('SideBySidePrinter', function() {
                                      -         '            File without changes\n' +
                                      -         '        </div>\n' +
                                      -         '    </td>\n' +
                                      --        '</tr>\n';
                                      -+        '</tr>';
                                      -
                                      -       assert.equal(expectedRight, fileHtml.right);
                                      -       assert.equal(expectedLeft, fileHtml.left);
                                      -@@ -324,7 +324,6 @@ describe('SideBySidePrinter', function() {
                                      -         '        </div>\n' +
                                      -         '    </td>\n' +
                                      -         '</tr>\n' +
                                      --        '\n' +
                                      -         '                    </tbody>\n' +
                                      -         '                </table>\n' +
                                      -         '            </div>\n' +
                                      -
                                      -From f3cadb96677d0eb82fc2752dc3ffbf35ca9b5bdb Mon Sep 17 00:00:00 2001
                                      -From: Rodrigo Fernandes <rtfrodrigo@gmail.com>
                                      -Date: Sat, 15 Oct 2016 13:21:22 +0100
                                      -Subject: [PATCH 2/2] Allow uncompiled templates
                                      -
                                      ----
                                      - README.md                 |  3 +++
                                      - src/hoganjs-utils.js      |  7 +++++++
                                      - test/hogan-cache-tests.js | 24 +++++++++++++++++++++++-
                                      - 3 files changed, 33 insertions(+), 1 deletion(-)
                                      -
                                      -diff --git a/README.md b/README.md
                                      -index 132c8a28..46909f25 100644
                                      ---- a/README.md
                                      -+++ b/README.md
                                      -@@ -98,6 +98,9 @@ The HTML output accepts a Javascript object with configuration. Possible options
                                      -   - `synchronisedScroll`: scroll both panes in side-by-side mode: `true` or `false`, default is `false`
                                      -   - `matchWordsThreshold`: similarity threshold for word matching, default is 0.25
                                      -   - `matchingMaxComparisons`: perform at most this much comparisons for line matching a block of changes, default is `2500`
                                      -+  - `templates`: object with previously compiled templates to replace parts of the html
                                      -+  - `rawTemplates`: object with raw not compiled templates to replace parts of the html
                                      -+  > For more information regarding the possible templates look into [src/templates](https://github.com/rtfpessoa/diff2html/tree/master/src/templates)
                                      -
                                      - ## Diff2HtmlUI Helper
                                      -
                                      -diff --git a/src/hoganjs-utils.js b/src/hoganjs-utils.js
                                      -index 0dda08d7..b2e9c275 100644
                                      ---- a/src/hoganjs-utils.js
                                      -+++ b/src/hoganjs-utils.js
                                      -@@ -17,6 +17,13 @@
                                      -   function HoganJsUtils(configuration) {
                                      -     this.config = configuration || {};
                                      -     extraTemplates = this.config.templates || {};
                                      -+
                                      -+    var rawTemplates = this.config.rawTemplates || {};
                                      -+    for (var templateName in rawTemplates) {
                                      -+      if (rawTemplates.hasOwnProperty(templateName)) {
                                      -+        if (!extraTemplates[templateName]) extraTemplates[templateName] = this.compile(rawTemplates[templateName]);
                                      -+      }
                                      -+    }
                                      -   }
                                      -
                                      -   HoganJsUtils.prototype.render = function(namespace, view, params) {
                                      -diff --git a/test/hogan-cache-tests.js b/test/hogan-cache-tests.js
                                      -index 3bb754ac..a34839c0 100644
                                      ---- a/test/hogan-cache-tests.js
                                      -+++ b/test/hogan-cache-tests.js
                                      -@@ -36,7 +36,7 @@ describe('HoganJsUtils', function() {
                                      -       assert.equal(null, result);
                                      -     });
                                      -
                                      --    it('should allow templates to be overridden', function() {
                                      -+    it('should allow templates to be overridden with compiled templates', function() {
                                      -       var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                                      -
                                      -       var config = {templates: {'generic-empty-diff': emptyDiffTemplate}};
                                      -@@ -44,5 +44,27 @@ describe('HoganJsUtils', function() {
                                      -       var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                                      -       assert.equal('<p>Rodrigo Fernandes</p>', result);
                                      -     });
                                      -+
                                      -+    it('should allow templates to be overridden with uncompiled templates', function() {
                                      -+      var emptyDiffTemplate = '<p></p>';
                                      -+
                                      -+      var config = {rawTemplates: {'generic-empty-diff': emptyDiffTemplate}};
                                      -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                                      -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                                      -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                                      -+    });
                                      -+
                                      -+    it('should allow templates to be overridden giving priority to compiled templates', function() {
                                      -+      var emptyDiffTemplate = HoganJsUtils.compile('<p></p>');
                                      -+      var emptyDiffTemplateUncompiled = '<p>Not used!</p>';
                                      -+
                                      -+      var config = {
                                      -+        templates: {'generic-empty-diff': emptyDiffTemplate},
                                      -+        rawTemplates: {'generic-empty-diff': emptyDiffTemplateUncompiled}
                                      -+      };
                                      -+      var hoganUtils = new (require('../src/hoganjs-utils.js').HoganJsUtils)(config);
                                      -+      var result = hoganUtils.render('generic', 'empty-diff', {myName: 'Rodrigo Fernandes'});
                                      -+      assert.equal('<p>Rodrigo Fernandes</p>', result);
                                      -+    });
                                      -   });
                                      - });
                                      -
                                      ]]>
                                      a post with advanced image components2024-01-27T11:46:00+00:002024-01-27T11:46:00+00:00https://alefisico.github.io/blog/2024/advanced-imagesThis is an example post with advanced image components.

                                      Image Slider

                                      This is a simple image slider. It uses the Swiper library. Check the examples page for more information of what you can achieve with it.

                                      Image Comparison Slider

                                      This is a simple image comparison slider. It uses the img-comparison-slider library. Check the examples page for more information of what you can achieve with it.

                                      ]]>
                                      a post with vega lite2024-01-27T00:20:00+00:002024-01-27T00:20:00+00:00https://alefisico.github.io/blog/2024/vega-liteThis is an example post with some vega lite code.

                                      ```vega_lite
                                      -{
                                      -  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
                                      -  "description": "A dot plot showing each movie in the database, and the difference from the average movie rating. The display is sorted by year to visualize everything in sequential order. The graph is for all Movies before 2019.",
                                      -  "data": {
                                      -    "url": "https://raw.githubusercontent.com/vega/vega/main/docs/data/movies.json"
                                      -  },
                                      -  "transform": [
                                      -    {"filter": "datum['IMDB Rating'] != null"},
                                      -    {"filter": {"timeUnit": "year", "field": "Release Date", "range": [null, 2019]}},
                                      -    {
                                      -      "joinaggregate": [{
                                      -        "op": "mean",
                                      -        "field": "IMDB Rating",
                                      -        "as": "AverageRating"
                                      -      }]
                                      -    },
                                      -    {
                                      -      "calculate": "datum['IMDB Rating'] - datum.AverageRating",
                                      -      "as": "RatingDelta"
                                      -    }
                                      -  ],
                                      -  "mark": "point",
                                      -  "encoding": {
                                      -    "x": {
                                      -      "field": "Release Date",
                                      -      "type": "temporal"
                                      -    },
                                      -    "y": {
                                      -      "field": "RatingDelta",
                                      -      "type": "quantitative",
                                      -      "title": "Rating Delta"
                                      -    },
                                      -    "color": {
                                      -      "field": "RatingDelta",
                                      -      "type": "quantitative",
                                      -      "scale": {"domainMid": 0},
                                      -      "title": "Rating Delta"
                                      -    }
                                      -  }
                                      -}
                                      -```
                                      -

                                      Which generates:

                                      {
                                      -  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
                                      -  "description": "A dot plot showing each movie in the database, and the difference from the average movie rating. The display is sorted by year to visualize everything in sequential order. The graph is for all Movies before 2019.",
                                      -  "data": {
                                      -    "url": "https://raw.githubusercontent.com/vega/vega/main/docs/data/movies.json"
                                      -  },
                                      -  "transform": [
                                      -    {"filter": "datum['IMDB Rating'] != null"},
                                      -    {"filter": {"timeUnit": "year", "field": "Release Date", "range": [null, 2019]}},
                                      -    {
                                      -      "joinaggregate": [{
                                      -        "op": "mean",
                                      -        "field": "IMDB Rating",
                                      -        "as": "AverageRating"
                                      -      }]
                                      -    },
                                      -    {
                                      -      "calculate": "datum['IMDB Rating'] - datum.AverageRating",
                                      -      "as": "RatingDelta"
                                      -    }
                                      -  ],
                                      -  "mark": "point",
                                      -  "encoding": {
                                      -    "x": {
                                      -      "field": "Release Date",
                                      -      "type": "temporal"
                                      -    },
                                      -    "y": {
                                      -      "field": "RatingDelta",
                                      -      "type": "quantitative",
                                      -      "title": "Rating Delta"
                                      -    },
                                      -    "color": {
                                      -      "field": "RatingDelta",
                                      -      "type": "quantitative",
                                      -      "scale": {"domainMid": 0},
                                      -      "title": "Rating Delta"
                                      -    }
                                      -  }
                                      -}
                                      -

                                      This plot supports both light and dark themes.

                                      ]]>
                                      a post with geojson2024-01-26T17:57:00+00:002024-01-26T17:57:00+00:00https://alefisico.github.io/blog/2024/geojson-mapThis is an example post with some geojson code. The support is provided thanks to Leaflet. To create your own visualization, go to geojson.io.

                                      ```geojson
                                      -{
                                      -  "type": "FeatureCollection",
                                      -  "features": [
                                      -    {
                                      -      "type": "Feature",
                                      -      "properties": {},
                                      -      "geometry": {
                                      -        "coordinates": [
                                      -          [
                                      -            [
                                      -              -60.11363029935569,
                                      -              -2.904625022183211
                                      -            ],
                                      -            [
                                      -              -60.11363029935569,
                                      -              -3.162613728707967
                                      -            ],
                                      -            [
                                      -              -59.820894493858034,
                                      -              -3.162613728707967
                                      -            ],
                                      -            [
                                      -              -59.820894493858034,
                                      -              -2.904625022183211
                                      -            ],
                                      -            [
                                      -              -60.11363029935569,
                                      -              -2.904625022183211
                                      -            ]
                                      -          ]
                                      -        ],
                                      -        "type": "Polygon"
                                      -      }
                                      -    }
                                      -  ]
                                      -}
                                      -```
                                      -

                                      Which generates:

                                      {
                                      -  "type": "FeatureCollection",
                                      -  "features": [
                                      -    {
                                      -      "type": "Feature",
                                      -      "properties": {},
                                      -      "geometry": {
                                      -        "coordinates": [
                                      -          [
                                      -            [
                                      -              -60.11363029935569,
                                      -              -2.904625022183211
                                      -            ],
                                      -            [
                                      -              -60.11363029935569,
                                      -              -3.162613728707967
                                      -            ],
                                      -            [
                                      -              -59.820894493858034,
                                      -              -3.162613728707967
                                      -            ],
                                      -            [
                                      -              -59.820894493858034,
                                      -              -2.904625022183211
                                      -            ],
                                      -            [
                                      -              -60.11363029935569,
                                      -              -2.904625022183211
                                      -            ]
                                      -          ]
                                      -        ],
                                      -        "type": "Polygon"
                                      -      }
                                      -    }
                                      -  ]
                                      -}
                                      -
                                      ]]>
                                      a post with echarts2024-01-26T16:03:00+00:002024-01-26T16:03:00+00:00https://alefisico.github.io/blog/2024/echartsThis is an example post with some echarts code.

                                      ```echarts
                                      -{
                                      -  "title": {
                                      -    "text": "ECharts Getting Started Example"
                                      -  },
                                      -  "responsive": true,
                                      -  "tooltip": {},
                                      -  "legend": {
                                      -    "top": "30px",
                                      -    "data": ["sales"]
                                      -  },
                                      -  "xAxis": {
                                      -    "data": ["Shirts", "Cardigans", "Chiffons", "Pants", "Heels", "Socks"]
                                      -  },
                                      -  "yAxis": {},
                                      -  "series": [
                                      -    {
                                      -      "name": "sales",
                                      -      "type": "bar",
                                      -      "data": [5, 20, 36, 10, 10, 20]
                                      -    }
                                      -  ]
                                      -}
                                      -```
                                      -

                                      Which generates:

                                      {
                                      -  "title": {
                                      -    "text": "ECharts Getting Started Example"
                                      -  },
                                      -  "responsive": true,
                                      -  "tooltip": {},
                                      -  "legend": {
                                      -    "top": "30px",
                                      -    "data": ["sales"]
                                      -  },
                                      -  "xAxis": {
                                      -    "data": ["Shirts", "Cardigans", "Chiffons", "Pants", "Heels", "Socks"]
                                      -  },
                                      -  "yAxis": {},
                                      -  "series": [
                                      -    {
                                      -      "name": "sales",
                                      -      "type": "bar",
                                      -      "data": [5, 20, 36, 10, 10, 20]
                                      -    }
                                      -  ]
                                      -}
                                      -

                                      Note that this library offer support for both light and dark themes. You can switch between them using the theme switcher in the top right corner of the page.

                                      ]]>
                                      a post with chart.js2024-01-26T01:04:00+00:002024-01-26T01:04:00+00:00https://alefisico.github.io/blog/2024/chartjsThis is an example post with some chart.js code.

                                      ```chartjs
                                      -{
                                      -  "type": "line",
                                      -  "data": {
                                      -    "labels": [
                                      -      "January",
                                      -      "February",
                                      -      "March",
                                      -      "April",
                                      -      "May",
                                      -      "June",
                                      -      "July"
                                      -    ],
                                      -    "datasets": [
                                      -      {
                                      -        "label": "# of bugs",
                                      -        "fill": false,
                                      -        "lineTension": 0.1,
                                      -        "backgroundColor": "rgba(75,192,192,0.4)",
                                      -        "borderColor": "rgba(75,192,192,1)",
                                      -        "borderCapStyle": "butt",
                                      -        "borderDash": [],
                                      -        "borderDashOffset": 0,
                                      -        "borderJoinStyle": "miter",
                                      -        "pointBorderColor": "rgba(75,192,192,1)",
                                      -        "pointBackgroundColor": "#fff",
                                      -        "pointBorderWidth": 1,
                                      -        "pointHoverRadius": 5,
                                      -        "pointHoverBackgroundColor": "rgba(75,192,192,1)",
                                      -        "pointHoverBorderColor": "rgba(220,220,220,1)",
                                      -        "pointHoverBorderWidth": 2,
                                      -        "pointRadius": 1,
                                      -        "pointHitRadius": 10,
                                      -        "data": [
                                      -          65,
                                      -          59,
                                      -          80,
                                      -          81,
                                      -          56,
                                      -          55,
                                      -          40
                                      -        ],
                                      -        "spanGaps": false
                                      -      }
                                      -    ]
                                      -  },
                                      -  "options": {}
                                      -}
                                      -```
                                      -

                                      This is how it looks like:

                                      {
                                      -  "type": "line",
                                      -  "data": {
                                      -    "labels": [
                                      -      "January",
                                      -      "February",
                                      -      "March",
                                      -      "April",
                                      -      "May",
                                      -      "June",
                                      -      "July"
                                      -    ],
                                      -    "datasets": [
                                      -      {
                                      -        "label": "# of bugs",
                                      -        "fill": false,
                                      -        "lineTension": 0.1,
                                      -        "backgroundColor": "rgba(75,192,192,0.4)",
                                      -        "borderColor": "rgba(75,192,192,1)",
                                      -        "borderCapStyle": "butt",
                                      -        "borderDash": [],
                                      -        "borderDashOffset": 0,
                                      -        "borderJoinStyle": "miter",
                                      -        "pointBorderColor": "rgba(75,192,192,1)",
                                      -        "pointBackgroundColor": "#fff",
                                      -        "pointBorderWidth": 1,
                                      -        "pointHoverRadius": 5,
                                      -        "pointHoverBackgroundColor": "rgba(75,192,192,1)",
                                      -        "pointHoverBorderColor": "rgba(220,220,220,1)",
                                      -        "pointHoverBorderWidth": 2,
                                      -        "pointRadius": 1,
                                      -        "pointHitRadius": 10,
                                      -        "data": [
                                      -          65,
                                      -          59,
                                      -          80,
                                      -          81,
                                      -          56,
                                      -          55,
                                      -          40
                                      -        ],
                                      -        "spanGaps": false
                                      -      }
                                      -    ]
                                      -  },
                                      -  "options": {}
                                      -}
                                      -

                                      Also another example chart.

                                      ```chartjs
                                      -{
                                      -  "type": "doughnut",
                                      -  "data": {
                                      -    "labels": [
                                      -      "Red",
                                      -      "Blue",
                                      -      "Yellow"
                                      -    ],
                                      -    "datasets": [
                                      -      {
                                      -        "data": [
                                      -          300,
                                      -          50,
                                      -          100
                                      -        ],
                                      -        "backgroundColor": [
                                      -          "#FF6384",
                                      -          "#36A2EB",
                                      -          "#FFCE56"
                                      -        ],
                                      -        "hoverBackgroundColor": [
                                      -          "#FF6384",
                                      -          "#36A2EB",
                                      -          "#FFCE56"
                                      -        ]
                                      -      }
                                      -    ]
                                      -  },
                                      -  "options": {}
                                      -}
                                      -```
                                      -

                                      Which generates:

                                      {
                                      -  "type": "doughnut",
                                      -  "data": {
                                      -    "labels": [
                                      -      "Red",
                                      -      "Blue",
                                      -      "Yellow"
                                      -    ],
                                      -    "datasets": [
                                      -      {
                                      -        "data": [
                                      -          300,
                                      -          50,
                                      -          100
                                      -        ],
                                      -        "backgroundColor": [
                                      -          "#FF6384",
                                      -          "#36A2EB",
                                      -          "#FFCE56"
                                      -        ],
                                      -        "hoverBackgroundColor": [
                                      -          "#FF6384",
                                      -          "#36A2EB",
                                      -          "#FFCE56"
                                      -        ]
                                      -      }
                                      -    ]
                                      -  },
                                      -  "options": {}
                                      -}
                                      -
                                      ]]>
                                      \ No newline at end of file +Jekyll2024-12-17T15:36:12+00:00https://alefisico.github.io/feed.xmlblankThis is my personal website. Experimental Particle Physicist, CERN. My academic story2024-12-16T00:00:00+00:002024-12-16T00:00:00+00:00https://alefisico.github.io/blog/2024/simple_storyEcuadorian, experimental particle physicist, currently working for Carnegie Mellon University at the CMS Experiment at CERN. My area of expertise is in particles decaying hadronically. I am interested in searches with jets, specially in the boosted regime.

                                      The short version

                                      I come from South America, Ecuador specifically, but I have been outside my beautiful country for a while now. The reason? I am in love with science, and unfortunately, I cannot do what I am passionate about in my own country. What am I passionate about? Well, that’s easy. I am passionate about particle physics, experimental particle physics specifically. At a young age, I read about CERN and the goals that they were pursuing, and I got fascinated. After that, it was decided that I wanted to work at CERN, and I wanted to become a particle physicist.

                                      However, becoming a scientist is not as easy as you might think, especially coming from developing countries. Being smart or capable is not enough. In my experience, being in the right place at the right time is equally crucial as being smart.

                                      Fortunately for me, I had the luck of meeting friendly, brilliant, and selfless people who helped me on my way through. Working like there is no tomorrow, luck, and meeting the right people are what made me the person I am today. And I am not even halfway through this journey!

                                      My academic life

                                      My Postdoctoral Research

                                      drawing

                                      Carnegie Mellon University - USA

                                      I am currently studying the self-interaction of the Higgs boson in the di-Higgs production channel. Measuring the Higgs self-interaction is crucial for understanding the stability of the Higgs potential and has significant implications for physics beyond the Standard Model. My research focuses on the four b-quark decay channel and is expanding to improve current studies in the bbWW channel.

                                      Additionally, I have a strong interest in workflow orchestration tools and analysis reproducibility. I have been advocating for the adoption of modern programming practices, including continuous integration (CI), extensive use of unit tests, and regular result replication using Snakemake and REANA.

                                      drawing

                                      Eidgenössische Technische Hochschule Zürich (ETH-Zurich) - Switzerland

                                      I studied the production of top quarks and the Higgs boson, focusing on the semileptonic and dileptonic decay channels of the top quarks and the decay of the Higgs boson into a pair of b-quarks at high transverse momentum. Additionally, my research concentrated on jets. I led efforts within the CMS collaboration on jet algorithms, jet substructure, tagging tools, and pileup mitigation techniques in the CMS trigger. I also worked on unfolding data related to high transverse momentum jets.

                                      My Graduate Research

                                      drawing

                                      Rutgers, The State University of New Jersey - USA

                                      My research focused on boosted jets during Run II of the LHC, supervised by Prof. Eva Halkiadakis. Typically, when a particle decays into two quarks at rest or with low momentum, the resulting particle showers (jets) can be reconstructed separately. However, for boosted particles (those not produced at rest), the decay products are more collimated, appearing as a single jet. I studied these boosted objects to distinguish between regular jets and those with internal substructure.

                                      From a theoretical perspective, I explored a variation of supersymmetry (SUSY). In the Minimal Supersymmetric Standard Model (MSSM), each SUSY particle decays into another SUSY particle and a Standard Model (SM) particle, conserving R-parity. However, if R-parity is violated (RPV), a SUSY particle may decay into two SM particles. For more detailed information, please refer to the SUSY Primer. Link to thesis.

                                      My Undergraduate Research

                                      drawing

                                      Escuela Politécnica Nacional - Ecuador For my undergraduate thesis, I searched for exotic particles, specifically colorons decaying into a pair of top quarks, resulting in a final state with four top quarks. This project was supervised by Dr. Francisco Yumiceva (Fermilab, currently at FIT). I conducted this analysis from scratch: generating a private production of a pair of heavy scalar bosons in Madgraph5, hadronizing my sample with Pythia8, passing it through CMSSW Fast Simulation, comparing the signal with background and data, and determining the best strategy to analyze my signal. Two analyses were performed: a simple cut-and-count analysis and a multivariate analysis using Boosted Decision Trees. Ultimately, we established the first limits on Standard Model four-top quark production and the pair production of the heavy scalar boson GH. Link to thesis.

                                      My CV in PDF

                                      ]]>
                                      Life lessons2022-09-06T19:55:53+00:002022-09-06T19:55:53+00:00https://alefisico.github.io/blog/2022/life-lessonsPerception2022-08-28T11:42:45+00:002022-08-28T11:42:45+00:00https://alefisico.github.io/blog/2022/perceptionMixed feelings2022-08-24T18:01:10+00:002022-08-24T18:01:10+00:00https://alefisico.github.io/blog/2022/mixed-feelingsThe Plan2022-08-19T11:01:02+00:002022-08-19T11:01:02+00:00https://alefisico.github.io/blog/2022/the-planHarder than expected2022-08-12T10:04:22+00:002022-08-12T10:04:22+00:00https://alefisico.github.io/blog/2022/harder-than-expectedBetween runs and hikes2022-08-04T17:11:46+00:002022-08-04T17:11:46+00:00https://alefisico.github.io/blog/2022/between-runs-and-hikesEl Camino2022-07-29T12:57:03+00:002022-07-29T12:57:03+00:00https://alefisico.github.io/blog/2022/el-caminoWho am I?2022-07-26T19:40:32+00:002022-07-26T19:40:32+00:00https://alefisico.github.io/blog/2022/who-am-i
                                      \ No newline at end of file diff --git a/index.html b/index.html index 55db162..a99aa02 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ - Alejandro Gomez Espinosa Ph.D.

                                      Alejandro Gomez Espinosa Ph.D.

                                      Experimental Particle Physicist

                                      prof_pic.jpg

                                      Welcome to my corner of the web. Here I am storing my portfolio, projects, academic life, and even my thoughts.

                                      I am an accomplished Ecuadorian scientist specializing in Experimental High Energy Physics, with more than 10 years of academic experience spanning different institutions: Fermilab, Rutgers University, ETH-Zurich, and Carnegie Mellon University. My primary research area centers on the CMS Experiment, one of the CERN-LHC experiments with a diverse stakeholder base of over 4,000 individuals. Working at CERN has afforded me the opportunity to lead and collaborate with large, multicultural groups both in-person and remotely.

                                      Throughout my career, I have specialized in the reconstruction of physical objects produced in high-energy collisions, namely jets. I have conducted in-depth analyses of these (multi-)jet signatures for standard model measurements and new physics searches, processing petabyte-scale datasets with advanced statistical tools. My contributions have resulted in over 5 scientific publications, where I played a direct role in the production of data-driven frameworks using programming languages like Python and C++.

                                      As a skilled communicator, I have presented my research to large audiences of over 500 stakeholders. My scientific curiosity and enthusiasm have inspired me to explore machine learning algorithms and cloud computing applications to optimize data processing.

                                      \ No newline at end of file + Alejandro Gomez Espinosa Ph.D.

                                      Alejandro Gomez Espinosa Ph.D.

                                      Experimental Particle Physicist

                                      prof_pic.jpg

                                      Welcome to my corner of the web. Here I am storing my portfolio, projects, academic life, and even my thoughts.

                                      I am an accomplished Ecuadorian scientist specializing in Experimental High Energy Physics, with more than 10 years of academic experience spanning different institutions: Fermilab, Rutgers University, ETH-Zurich, and Carnegie Mellon University. My primary research area centers on the CMS Experiment, one of the CERN-LHC experiments with a diverse stakeholder base of over 4,000 individuals. Working at CERN has afforded me the opportunity to lead and collaborate with large, multicultural groups both in-person and remotely.

                                      Throughout my career, I have specialized in the reconstruction of physical objects produced in high-energy collisions, namely jets. I have conducted in-depth analyses of these (multi-)jet signatures for standard model measurements and new physics searches, processing petabyte-scale datasets with advanced statistical tools. My contributions have resulted in over 5 scientific publications, where I played a direct role in the production of data-driven frameworks using programming languages like Python and C++.

                                      As a skilled communicator, I have presented my research to large audiences of over 500 stakeholders. My scientific curiosity and enthusiasm have inspired me to explore machine learning algorithms and cloud computing applications to optimize data processing.

                                      \ No newline at end of file diff --git a/news/announcement_1/index.html b/news/announcement_1/index.html index bb713f1..4ae2af9 100644 --- a/news/announcement_1/index.html +++ b/news/announcement_1/index.html @@ -1 +1 @@ - Announcement_1 | Alejandro Gomez Espinosa Ph.D.

                                      Announcement_1

                                      A simple inline announcement.

                                      \ No newline at end of file + Announcement_1 | Alejandro Gomez Espinosa Ph.D.

                                      Announcement_1

                                      A simple inline announcement.

                                      \ No newline at end of file diff --git a/news/announcement_2/index.html b/news/announcement_2/index.html index f89f826..2292179 100644 --- a/news/announcement_2/index.html +++ b/news/announcement_2/index.html @@ -1 +1 @@ - A long announcement with details | Alejandro Gomez Espinosa Ph.D.

                                      A long announcement with details

                                      Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below.


                                      Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

                                      Hipster list

                                      • brunch
                                      • fixie
                                      • raybans
                                      • messenger bag

                                      Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90’s yr typewriter selfies letterpress cardigan vegan.


                                      Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar.

                                      We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. —Anais Nin

                                      Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual.

                                      \ No newline at end of file + A long announcement with details | Alejandro Gomez Espinosa Ph.D.

                                      A long announcement with details

                                      Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below.


                                      Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy.

                                      Hipster list

                                      • brunch
                                      • fixie
                                      • raybans
                                      • messenger bag

                                      Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90’s yr typewriter selfies letterpress cardigan vegan.


                                      Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar.

                                      We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. —Anais Nin

                                      Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual.

                                      \ No newline at end of file diff --git a/news/announcement_3/index.html b/news/announcement_3/index.html index 9c30b60..db37e17 100644 --- a/news/announcement_3/index.html +++ b/news/announcement_3/index.html @@ -1 +1 @@ - Announcement_3 | Alejandro Gomez Espinosa Ph.D.

                                      Announcement_3

                                      A simple inline announcement with Markdown emoji! :sparkles: :smile:

                                      \ No newline at end of file + Announcement_3 | Alejandro Gomez Espinosa Ph.D.

                                      Announcement_3

                                      A simple inline announcement with Markdown emoji! :sparkles: :smile:

                                      \ No newline at end of file diff --git a/news/index.html b/news/index.html index 5476ebb..c3d3e33 100644 --- a/news/index.html +++ b/news/index.html @@ -1 +1 @@ - news | Alejandro Gomez Espinosa Ph.D.

                                      news

                                      \ No newline at end of file + news | Alejandro Gomez Espinosa Ph.D.

                                      news

                                      \ No newline at end of file diff --git a/people/index.html b/people/index.html index d2abcc9..c9b3c8f 100644 --- a/people/index.html +++ b/people/index.html @@ -1 +1 @@ - people | Alejandro Gomez Espinosa Ph.D.

                                      people

                                      members of the lab or group


                                      prof_pic.jpg

                                      555 your office number

                                      123 your address street

                                      Your City, State 12345

                                      Write your biography here. Tell the world about yourself. Link to your favorite subreddit. You can put a picture in, too. The code is already in, just name your picture prof_pic.jpg and put it in the img/ folder.

                                      Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing profile property of the YAML header of your _pages/about.md. Edit _bibliography/papers.bib and Jekyll will render your publications page automatically.

                                      Link to your social media connections, too. This theme is set up to use Font Awesome icons and Academicons, like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.


                                      prof_pic.jpg

                                      555 your office number

                                      123 your address street

                                      Your City, State 12345

                                      Write your biography here. Tell the world about yourself. Link to your favorite subreddit. You can put a picture in, too. The code is already in, just name your picture prof_pic.jpg and put it in the img/ folder.

                                      Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing profile property of the YAML header of your _pages/about.md. Edit _bibliography/papers.bib and Jekyll will render your publications page automatically.

                                      Link to your social media connections, too. This theme is set up to use Font Awesome icons and Academicons, like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.

                                      \ No newline at end of file + people | Alejandro Gomez Espinosa Ph.D.

                                      people

                                      members of the lab or group


                                      prof_pic.jpg

                                      555 your office number

                                      123 your address street

                                      Your City, State 12345

                                      Write your biography here. Tell the world about yourself. Link to your favorite subreddit. You can put a picture in, too. The code is already in, just name your picture prof_pic.jpg and put it in the img/ folder.

                                      Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing profile property of the YAML header of your _pages/about.md. Edit _bibliography/papers.bib and Jekyll will render your publications page automatically.

                                      Link to your social media connections, too. This theme is set up to use Font Awesome icons and Academicons, like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.


                                      prof_pic.jpg

                                      555 your office number

                                      123 your address street

                                      Your City, State 12345

                                      Write your biography here. Tell the world about yourself. Link to your favorite subreddit. You can put a picture in, too. The code is already in, just name your picture prof_pic.jpg and put it in the img/ folder.

                                      Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing profile property of the YAML header of your _pages/about.md. Edit _bibliography/papers.bib and Jekyll will render your publications page automatically.

                                      Link to your social media connections, too. This theme is set up to use Font Awesome icons and Academicons, like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.

                                      \ No newline at end of file diff --git a/portfolio/index.html b/portfolio/index.html index 7c5ce5c..8bdc641 100644 --- a/portfolio/index.html +++ b/portfolio/index.html @@ -21,4 +21,4 @@ ] } } -

                                      portfolio

                                      A set of industry oriented examples with all the tools that I have dominated.

                                      My full resume can be found here.

                                      The topic of my portfolio is part of the final capstone project of my Google Data Analytics Professional Certificate. While the project had specific goals, I went beyond them, and I used them to demonstrate my analytical skills and the tools that I dominate.

                                      The case study

                                      Bellabeat is a high-tech manufacturer of health-focused products for women, and they can become a more prominent player in the global smart device market. The Chief Creative Officer of Bellabeat believes that analyzing smart device fitness data could help unlock new growth opportunities for the company. The goal is to focus on one of Bellabeat’s products and analyze smart device data to understand how consumers use their smart devices. These insights will then help guide the marketing strategy for the company.

                                      Data Analytics

                                      The data analytics process that I followed, as suggested by Google, is described step-by-step in this set of log files: Ask, Prepare, Process, Analyze, Share, Act.

                                      In short, I am using three different datasets that I called: Fitabase (Fitbit information from 30 individuals)[1], AppleWatchFitbit (information from two smart devices from 23 men and 26 women)[2], and FitbitGrades (Fitbit information from 400 college students, including grades)[3]. The following table can guide you through the different topics, the notebooks, and the collection of tools used.

                                      Tools used Goals Code/Notebooks/Links
                                      Bigquery, SQL, Python, Pandas, Matplotlib, Seaborn Study the overall behavior of Fitbit consumers using the Fitabase dataset.
                                      R, Tidyverse, ggplot2 Study the behavior of Apple watch consumers using the AppleWatchFitbit dataset. Study differences between women and men consumers.
                                      Spreadsheets, Pivot tables Study behavior of women/men Fitbit costumers related with their intellectual skills.
                                      Tableau, dashboards Summarize and emphasize the previous findings using BI tools.

                                      Finally, the entire project is stored in this GitHub repository.

                                      Results and recommendations

                                      The outcomes of this study are:

                                      • Highly active people can use Bellabeat’s Time and Leaf to track their activities, heart rate, and sleep patterns. This study suggested that highly active people have different active patterns than more sedentary people; if advertising is targeted to these groups, it should be used on different days.
                                      • In terms of sleeping patterns, the marketing department can be focused on showing users that tracking sleeping states with Bellabeat’s Time and Leaf can let users know when they are sleeping less.
                                      • This study shows that women and men have different health metrics, and even some indications being active can improve women’s intellectual activities. This can be used explicitly for Bellabeat to show their customers the value of a women-focused company.
                                      • The data used in this analysis can be further utilized to predict activity levels. This step is covered in the Data Science part of the portfolio.

                                      A set of slides highlighting the results and recommendations can be found here.

                                      Data Science

                                      After completing the capstone project and having a deeper look at the datasets, I got some ideas that I want to explore, showing other tools that I dominate. In this part of my portfolio, I am showing machine learning techniques applied to answer some questions that I got from the datasets:

                                      Tools used Goals Code/Notebooks/Links
                                      statsmodels regressions, scikit-learn, XGBoost, Feature importance, ML Optimizations Can I infer the number of calories burned from other variables collected by the apple watch?. By answering this goal, I can show different regression techniques. Link to the notebook
                                      sklearn, classification, LogisticRegression, RandomForest, XGBoost, Exploratory Data Analysis, matplotlib, seaborn The famous Titanic competition. Here I test many different ML algorithms. Link to the notebook
                                      pyspark, binary classification, SQL, Feature engineering I use pyspark in one the Kaggle Monthly Challenges. Link to the notebook
                                      TensorFlow, Keras, sklearn, multilabel classification, deep neural network Classification problem using one the CERN LHC datasets. Link to the notebook

                                      More soon

                                      References

                                      [1] Furberg, R., Brinton, J., Keating, M., & Ortiz, A. (2016). Crowd-sourced Fitbit datasets 03.12.2016-05.12.2016 [Data set]. Zenodo. https://doi.org/10.5281/zenodo.53894

                                      [2] Fuller, Daniel, 2020, “Replication Data for: Using machine learning methods to predict physical activity types with Apple Watch and Fitbit data using indirect calorimetry as the criterion.”, https://doi.org/10.7910/DVN/ZS2Z2J, Harvard Dataverse, V1

                                      [3] Broaddus, Allie; Jaquis, Brandon; Jones, Colt; Jost, Scarlet; Lang, Andrew; Li, Ailin; et al. (2018): Dataset: Fitbits, field-tests, and grades. The effects of a healthy and physically active lifestyle on the academic performance of first year college students.. figshare. Dataset. https://doi.org/10.6084/m9.figshare.7218497.v1

                                      \ No newline at end of file +

                                      portfolio

                                      A set of industry oriented examples with all the tools that I have dominated.

                                      My full resume can be found here.

                                      The topic of my portfolio is part of the final capstone project of my Google Data Analytics Professional Certificate. While the project had specific goals, I went beyond them, and I used them to demonstrate my analytical skills and the tools that I dominate.

                                      The case study

                                      Bellabeat is a high-tech manufacturer of health-focused products for women, and they can become a more prominent player in the global smart device market. The Chief Creative Officer of Bellabeat believes that analyzing smart device fitness data could help unlock new growth opportunities for the company. The goal is to focus on one of Bellabeat’s products and analyze smart device data to understand how consumers use their smart devices. These insights will then help guide the marketing strategy for the company.

                                      Data Analytics

                                      The data analytics process that I followed, as suggested by Google, is described step-by-step in this set of log files: Ask, Prepare, Process, Analyze, Share, Act.

                                      In short, I am using three different datasets that I called: Fitabase (Fitbit information from 30 individuals)[1], AppleWatchFitbit (information from two smart devices from 23 men and 26 women)[2], and FitbitGrades (Fitbit information from 400 college students, including grades)[3]. The following table can guide you through the different topics, the notebooks, and the collection of tools used.

                                      Tools used Goals Code/Notebooks/Links
                                      Bigquery, SQL, Python, Pandas, Matplotlib, Seaborn Study the overall behavior of Fitbit consumers using the Fitabase dataset.
                                      R, Tidyverse, ggplot2 Study the behavior of Apple watch consumers using the AppleWatchFitbit dataset. Study differences between women and men consumers.
                                      Spreadsheets, Pivot tables Study behavior of women/men Fitbit costumers related with their intellectual skills.
                                      Tableau, dashboards Summarize and emphasize the previous findings using BI tools.

                                      Finally, the entire project is stored in this GitHub repository.

                                      Results and recommendations

                                      The outcomes of this study are:

                                      • Highly active people can use Bellabeat’s Time and Leaf to track their activities, heart rate, and sleep patterns. This study suggested that highly active people have different active patterns than more sedentary people; if advertising is targeted to these groups, it should be used on different days.
                                      • In terms of sleeping patterns, the marketing department can be focused on showing users that tracking sleeping states with Bellabeat’s Time and Leaf can let users know when they are sleeping less.
                                      • This study shows that women and men have different health metrics, and even some indications being active can improve women’s intellectual activities. This can be used explicitly for Bellabeat to show their customers the value of a women-focused company.
                                      • The data used in this analysis can be further utilized to predict activity levels. This step is covered in the Data Science part of the portfolio.

                                      A set of slides highlighting the results and recommendations can be found here.

                                      Data Science

                                      After completing the capstone project and having a deeper look at the datasets, I got some ideas that I want to explore, showing other tools that I dominate. In this part of my portfolio, I am showing machine learning techniques applied to answer some questions that I got from the datasets:

                                      Tools used Goals Code/Notebooks/Links
                                      statsmodels regressions, scikit-learn, XGBoost, Feature importance, ML Optimizations Can I infer the number of calories burned from other variables collected by the apple watch?. By answering this goal, I can show different regression techniques. Link to the notebook
                                      sklearn, classification, LogisticRegression, RandomForest, XGBoost, Exploratory Data Analysis, matplotlib, seaborn The famous Titanic competition. Here I test many different ML algorithms. Link to the notebook
                                      pyspark, binary classification, SQL, Feature engineering I use pyspark in one the Kaggle Monthly Challenges. Link to the notebook
                                      TensorFlow, Keras, sklearn, multilabel classification, deep neural network Classification problem using one the CERN LHC datasets. Link to the notebook

                                      More soon

                                      References

                                      [1] Furberg, R., Brinton, J., Keating, M., & Ortiz, A. (2016). Crowd-sourced Fitbit datasets 03.12.2016-05.12.2016 [Data set]. Zenodo. https://doi.org/10.5281/zenodo.53894

                                      [2] Fuller, Daniel, 2020, “Replication Data for: Using machine learning methods to predict physical activity types with Apple Watch and Fitbit data using indirect calorimetry as the criterion.”, https://doi.org/10.7910/DVN/ZS2Z2J, Harvard Dataverse, V1

                                      [3] Broaddus, Allie; Jaquis, Brandon; Jones, Colt; Jost, Scarlet; Lang, Andrew; Li, Ailin; et al. (2018): Dataset: Fitbits, field-tests, and grades. The effects of a healthy and physically active lifestyle on the academic performance of first year college students.. figshare. Dataset. https://doi.org/10.6084/m9.figshare.7218497.v1

                                      \ No newline at end of file diff --git a/projects/blog/index.html b/projects/blog/index.html index 4feadb8..fe3f762 100644 --- a/projects/blog/index.html +++ b/projects/blog/index.html @@ -1 +1 @@ - Living My Life Behind | Alejandro Gomez Espinosa Ph.D.

                                      Living My Life Behind




                                        Enjoy Reading This Article?

                                        Here are some more articles you might like to read next:

                                      • Who am I?
                                      • El Camino
                                      • Between runs and hikes
                                      • Harder than expected
                                      • The Plan
                                      • \ No newline at end of file + Living My Life Behind | Alejandro Gomez Espinosa Ph.D.

                                        Living My Life Behind




                                          Enjoy Reading This Article?

                                          Here are some more articles you might like to read next:

                                        • Who am I?
                                        • El Camino
                                        • Between runs and hikes
                                        • Harder than expected
                                        • The Plan
                                        • \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 9250d98..ce4a9ab 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1 +1 @@ - projects | Alejandro Gomez Espinosa Ph.D.

                                          projects

                                          A growing collection of my projects.

                                          \ No newline at end of file + projects | Alejandro Gomez Espinosa Ph.D.

                                          projects

                                          A growing collection of my projects.

                                          \ No newline at end of file diff --git a/projects/livingmylifebehind_project/index.html b/projects/livingmylifebehind_project/index.html index b02da60..8ea6275 100644 --- a/projects/livingmylifebehind_project/index.html +++ b/projects/livingmylifebehind_project/index.html @@ -1 +1 @@ - Living my life behind | Alejandro Gomez Espinosa Ph.D.

                                          Living my life behind

                                          An 800 km adventure in 35 days walking along the Camino de Santiago

                                          El Camino de Santiago is the biggest adventure of my life. It is an 800 km walk on North Spain along the path followed for centuries by peregrinos around the world. I did it in 35 days and I documented all the process in pictures and videos. All this content is located in the following website.

                                          \ No newline at end of file + Living my life behind | Alejandro Gomez Espinosa Ph.D.

                                          Living my life behind

                                          An 800 km adventure in 35 days walking along the Camino de Santiago

                                          El Camino de Santiago is the biggest adventure of my life. It is an 800 km walk on North Spain along the path followed for centuries by peregrinos around the world. I did it in 35 days and I documented all the process in pictures and videos. All this content is located in the following website.

                                          \ No newline at end of file diff --git a/projects/soccermatics_project/index.html b/projects/soccermatics_project/index.html index aacbaf4..10121a4 100644 --- a/projects/soccermatics_project/index.html +++ b/projects/soccermatics_project/index.html @@ -1 +1 @@ - Soccermatics for Python Series | Alejandro Gomez Espinosa Ph.D.

                                          Soccermatics for Python Series

                                          my version of this popular tutorial

                                          I am an sports aficionado and since I discover the field of sports analytics I want it to learn as much as I can about it. This project is under construction and currently I will start adding a new thoughts and notebooks related to it.

                                          In this project, I am following the videos/lectures from this Mathematical Modelling of Football from David Sumpter, author of Soccermatics.

                                          My idea is to learn from the series the “state-of-the-art” in football analytics, and from there start my playing with that data. I recommend to watch all the videos in the lectures and/or also watch the videos in the Friends-of-Tracking youtube channel.

                                          notebooks

                                          First, I am trying to replicate all the SoccermaticsForPython exercises from the Friends of Tracking folks. My Kaggle notebooks are here:

                                          1. Load Football Data
                                          2. Plot shots and passes
                                          3. xG Model
                                          4. Linear Regression
                                          5. xG Model Fit
                                          6. Measures Of Fit
                                          7. Pass heatmap
                                          8. Pass Compare
                                          9. Shot Times
                                          10. Goals per game
                                          11. Simulate Matches

                                          I am also trying to make the assignments from the class. Here are the links to the Kaggle notebooks:

                                          1. Assigment 1: I choose to analyze the performance of Antoine Griezmann during the 2018 Men’s World Cup.
                                          \ No newline at end of file + Soccermatics for Python Series | Alejandro Gomez Espinosa Ph.D.

                                          Soccermatics for Python Series

                                          my version of this popular tutorial

                                          I am an sports aficionado and since I discover the field of sports analytics I want it to learn as much as I can about it. This project is under construction and currently I will start adding a new thoughts and notebooks related to it.

                                          In this project, I am following the videos/lectures from this Mathematical Modelling of Football from David Sumpter, author of Soccermatics.

                                          My idea is to learn from the series the “state-of-the-art” in football analytics, and from there start my playing with that data. I recommend to watch all the videos in the lectures and/or also watch the videos in the Friends-of-Tracking youtube channel.

                                          notebooks

                                          First, I am trying to replicate all the SoccermaticsForPython exercises from the Friends of Tracking folks. My Kaggle notebooks are here:

                                          1. Load Football Data
                                          2. Plot shots and passes
                                          3. xG Model
                                          4. Linear Regression
                                          5. xG Model Fit
                                          6. Measures Of Fit
                                          7. Pass heatmap
                                          8. Pass Compare
                                          9. Shot Times
                                          10. Goals per game
                                          11. Simulate Matches

                                          I am also trying to make the assignments from the class. Here are the links to the Kaggle notebooks:

                                          1. Assigment 1: I choose to analyze the performance of Antoine Griezmann during the 2018 Men’s World Cup.
                                          \ No newline at end of file diff --git a/projects/teaching_EPN_Spring2023_NewtonianMechanics/index.html b/projects/teaching_EPN_Spring2023_NewtonianMechanics/index.html index d1712a0..c024983 100644 --- a/projects/teaching_EPN_Spring2023_NewtonianMechanics/index.html +++ b/projects/teaching_EPN_Spring2023_NewtonianMechanics/index.html @@ -1 +1 @@ - Mecánica Newtoniana | Alejandro Gomez Espinosa Ph.D.

                                          Mecánica Newtoniana

                                          EPN class

                                          More coming soon

                                          \ No newline at end of file + Mecánica Newtoniana | Alejandro Gomez Espinosa Ph.D.

                                          Mecánica Newtoniana

                                          EPN class

                                          More coming soon

                                          \ No newline at end of file diff --git a/projects/teaching_ETH_Spring2021/index.html b/projects/teaching_ETH_Spring2021/index.html index e0566d9..0379c9f 100644 --- a/projects/teaching_ETH_Spring2021/index.html +++ b/projects/teaching_ETH_Spring2021/index.html @@ -1 +1 @@ - Statistical Methods and Analysis Techniques in Experimental Physics | Alejandro Gomez Espinosa Ph.D.

                                          Statistical Methods and Analysis Techniques in Experimental Physics

                                          TA at ETH-Zurich

                                          Class taught at ETH-Zurich.

                                          \ No newline at end of file + Statistical Methods and Analysis Techniques in Experimental Physics | Alejandro Gomez Espinosa Ph.D.

                                          Statistical Methods and Analysis Techniques in Experimental Physics

                                          TA at ETH-Zurich

                                          Class taught at ETH-Zurich.

                                          \ No newline at end of file diff --git a/projects/valueplayeractions_project/index.html b/projects/valueplayeractions_project/index.html index b01cfe1..36c95e3 100644 --- a/projects/valueplayeractions_project/index.html +++ b/projects/valueplayeractions_project/index.html @@ -1 +1 @@ - Value Player Actions in Football | Alejandro Gomez Espinosa Ph.D.

                                          Value Player Actions in Football

                                          my version of this popular tutorial

                                          Continuing my Sports Analytics learning, I found these Notebooks for the Friends of Tracking project. There, an interesting approach for valuing actions in football is presented.

                                          I followed their notebooks again in Kaggle, using the Wyscout open data. The notebooks can be found below.

                                          notebooks

                                          1. Run pipeline
                                          2. Generate features
                                          3. Learn Models
                                          4. Analyze models and results

                                          I am also trying to go beyond what is shown in the notebooks. Below are some of my attemps:

                                          1. Beyond Value Actions: I choose to analyze the performance of Antoine Griezmann during the 2018 Men’s World Cup.
                                          \ No newline at end of file + Value Player Actions in Football | Alejandro Gomez Espinosa Ph.D.

                                          Value Player Actions in Football

                                          my version of this popular tutorial

                                          Continuing my Sports Analytics learning, I found these Notebooks for the Friends of Tracking project. There, an interesting approach for valuing actions in football is presented.

                                          I followed their notebooks again in Kaggle, using the Wyscout open data. The notebooks can be found below.

                                          notebooks

                                          1. Run pipeline
                                          2. Generate features
                                          3. Learn Models
                                          4. Analyze models and results

                                          I am also trying to go beyond what is shown in the notebooks. Below are some of my attemps:

                                          1. Beyond Value Actions: I choose to analyze the performance of Antoine Griezmann during the 2018 Men’s World Cup.
                                          \ No newline at end of file diff --git a/publications/index.html b/publications/index.html index f486a44..d2eadb7 100644 --- a/publications/index.html +++ b/publications/index.html @@ -1,4 +1,4 @@ - publications | Alejandro Gomez Espinosa Ph.D.

                                          publications

                                          publications by categories in reversed chronological order. generated by jekyll-scholar.

                                          2024

                                          1. Contributor
                                            Measurement of the ttH and tH production rates in the H to bb decay channel using proton-proton collision data at 13 TeV
                                            Aram Hayrapetyan, and  others
                                            Jul 2024
                                          \ No newline at end of file diff --git a/repositories/index.html b/repositories/index.html index 57b4a76..aebb4e5 100644 --- a/repositories/index.html +++ b/repositories/index.html @@ -1 +1 @@ - repositories | Alejandro Gomez Espinosa Ph.D.

                                          repositories

                                          Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories.

                                          GitHub users



                                          GitHub Repositories

                                          \ No newline at end of file + repositories | Alejandro Gomez Espinosa Ph.D.

                                          repositories

                                          Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories.

                                          GitHub users



                                          GitHub Repositories

                                          \ No newline at end of file diff --git a/resume/index.html b/resume/index.html new file mode 100644 index 0000000..15d94bc --- /dev/null +++ b/resume/index.html @@ -0,0 +1 @@ + resume | Alejandro Gomez Espinosa Ph.D.

                                          resume

                                          Alejandro Gomez Espinosa Ph.D.

                                          alefisicosocial@gmail.com. Personal website. Linkedin profile. Currently in Quito, Ecuador.

                                          As a data-driven scientist with extensive experience in experimental physics and a proven track record of success at CERN, I possess a unique combination of analytical and communication skills. My expertise lies in analyzing and interpreting petabyte-scale datasets using advanced statistical tools, including machine learning algorithms, to drive innovative research and generate actionable insights. Throughout my career, I have honed my ability to effectively communicate complex scientific concepts to diverse audiences, including thousands of stakeholders, through written and oral presentations. As I transition to a new career path, I am eager to leverage my skills and experience to tackle new challenges and drive success in the field of data science.

                                          Skills

                                          • Programming languages: Python, C++, Bash, SQL, R, LaTeX.
                                          • Technical tools: Pandas, Numpy, Scipy, Jupyter-notebooks, Scikit-learn, TensorFlow, Bigquery, Matplotlib, Seaborn, Docker, Kubernetes, Tidyverse, ggplot2, Linux, Git, Spreadsheets, Tableau.
                                          • Machine Learning: Regression, Classification, Feature engineering, Data Scraping, MC Methods.
                                          • Soft skills: Lead and collaborate with multicultural groups of 20+ people in person and remotely. Communicate results to 500+ stakeholders in conferences and write scientific peer-review documents.
                                          • Languages: English (fluent), Spanish (Native).

                                          Professional Experience

                                          Data Scientist, CERN-CMS Experiment (2011 – Present)
                                          • Built an academic career over a decade as part of a team of 2000+ stakeholders in one of the CERN experiments, representing three different institutions.
                                          • Designed and optimized over five multi-class C++/Python frameworks to analyze petabyte-scale data and simulations, resulting in significant acceleration of processing times from weeks to days.
                                          • Authored and co-authored over five peer-reviewed scientific publications.
                                          • Leadership Experience:
                                            • Jet Algorithms Convener (2019-2021) - Directed and led a research group of over 20 stakeholders, successfully coordinating with competing partners to produce and publish reports.
                                            • Trigger Subgroup Convener (2016-2017). Coordinated the deployment of real-time data filters for a research group consisting of more than 30 stakeholders.
                                          Postdoctoral Research Assistant, ETH Zurich (2018 – 2022)
                                          • Managed the development of two machine learning-based techniques, which were trained in simulations and implemented in data, with the aim of enhancing the filtration of rare theoretically predicted phenomena. The successful implementation of these techniques resulted in a 10% increase in filtering efficiency.
                                          • Recognized and investigated two underexplored research areas and developed innovative strategies to address them, resulting in the publication of scientific research papers.
                                          • Oversaw the completion of three Ph.D. and two master’s-level final projects as a supervisor.
                                          Research Assistant, Rutgers - The State University of New Jersey (2012 – 2018)
                                          • Conducted feasibility studies of novel theoretical models and implemented new data-driven techniques to estimate predictions, resulting in the authorship of two scientific publications.
                                          • Optimized signal-to-background discriminant variables, achieving a 20% improvement over previous results.
                                          • Conceptualized, designed, and deployed three real-time data collection filters, optimizing the probability of capturing scarce yet significant data for the first time.
                                          Visitor Research Student, Fermilab (2011 – 2012)
                                          • Implemented a novel analysis framework using C++ and multivariate techniques, specifically boosted decision trees, to study the production of rare theoretical models for the first time.
                                          • The results obtained during this internship program were incorporated into my bachelor’s project and contributed to a published research paper.

                                          Education

                                          • Doctor of Philosophy, Experimental Particle Physics. Rutgets, The State University of New Jersey - USA. (2012-2018)
                                          • Bachelor of Science, Physics. Escuela Politecnica Nacional - Ecuador (2007-2012)
                                          • Continuous Education:
                                            • Google Data Analytics Professional Certificate - Google (Coursera, 2022)
                                            • Deep Learning Specialization - Deep Learning.AI (Coursera, 2022)
                                            • Sport Performance Analytics Specialization - U. Michigan (Coursera, 2021)

                                          Additional information

                                          As an Ecuadorian citizen, I require support with obtaining a work visa for relevant job opportunities.

                                          \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index eb706b0..b57371f 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ - https://alefisico.github.io/news/announcement_1/ 2015-10-22T19:59:00+00:00 https://alefisico.github.io/news/announcement_2/ 2015-11-07T20:11:00+00:00 https://alefisico.github.io/news/announcement_3/ 2016-01-15T11:59:00+00:00 https://alefisico.github.io/blog/2015/formatting-and-links/ 2015-03-15T16:40:16+00:00 https://alefisico.github.io/blog/2015/images/ 2015-05-15T21:01:00+00:00 https://alefisico.github.io/blog/2015/code/ 2015-07-15T15:09:00+00:00 https://alefisico.github.io/blog/2015/math/ 2015-10-20T15:12:00+00:00 https://alefisico.github.io/blog/2015/disqus-comments/ 2015-10-20T15:59:00+00:00 https://alefisico.github.io/blog/2020/twitter/ 2020-09-28T15:12:00+00:00 https://alefisico.github.io/blog/2021/distill/ 2021-05-22T00:00:00+00:00 https://alefisico.github.io/blog/2021/diagrams/ 2021-07-04T17:39:00+00:00 https://alefisico.github.io/blog/2022/redirect/ 2022-02-01T17:39:00+00:00 https://alefisico.github.io/blog/2022/giscus-comments/ 2022-12-10T15:59:00+00:00 https://alefisico.github.io/blog/2023/table-of-contents/ 2023-03-20T15:59:00+00:00 https://alefisico.github.io/blog/2023/tables/ 2023-03-20T18:37:00+00:00 https://alefisico.github.io/blog/2023/videos/ 2023-04-24T21:01:00+00:00 https://alefisico.github.io/blog/2023/audios/ 2023-04-25T10:25:00+00:00 https://alefisico.github.io/blog/2023/sidebar-table-of-contents/ 2023-04-25T14:14:00+00:00 https://alefisico.github.io/blog/2023/custom-blockquotes/ 2023-05-12T19:53:00+00:00 https://alefisico.github.io/blog/2023/jupyter-notebook/ 2023-07-04T12:57:00+00:00 https://alefisico.github.io/blog/2023/post-bibliography/ 2023-07-12T13:56:00+00:00 https://alefisico.github.io/blog/2023/tikzjax/ 2023-12-12T22:25:00+00:00 https://alefisico.github.io/blog/2024/chartjs/ 2024-01-26T01:04:00+00:00 https://alefisico.github.io/blog/2024/echarts/ 2024-01-26T16:03:00+00:00 https://alefisico.github.io/blog/2024/geojson-map/ 2024-01-26T17:57:00+00:00 https://alefisico.github.io/blog/2024/vega-lite/ 2024-01-27T00:20:00+00:00 https://alefisico.github.io/blog/2024/advanced-images/ 2024-01-27T11:46:00+00:00 https://alefisico.github.io/blog/2024/code-diff/ 2024-01-27T19:22:00+00:00 https://alefisico.github.io/blog/2024/pseudocode/ 2024-04-15T00:01:00+00:00 https://alefisico.github.io/blog/2024/post-citation/ 2024-04-28T15:06:00+00:00 https://alefisico.github.io/blog/2024/typograms/ 2024-04-29T23:36:10+00:00 https://alefisico.github.io/blog/2024/tabs/ 2024-05-01T00:32:13+00:00 https://alefisico.github.io/blog/2022/life-lessons/ 2022-09-06T19:55:53+00:00 https://alefisico.github.io/blog/2022/perception/ 2022-08-28T11:42:45+00:00 https://alefisico.github.io/blog/2022/mixed-feelings/ 2022-08-24T18:01:10+00:00 https://alefisico.github.io/blog/2022/the-plan/ 2022-08-19T11:01:02+00:00 https://alefisico.github.io/blog/2022/harder-than-expected/ 2022-08-12T10:04:22+00:00 https://alefisico.github.io/blog/2022/between-runs-and-hikes/ 2022-08-04T17:11:46+00:00 https://alefisico.github.io/blog/2022/el-camino/ 2022-07-29T12:57:03+00:00 https://alefisico.github.io/blog/2022/who-am-i/ 2022-07-26T19:40:32+00:00 https://alefisico.github.io/projects/blog/ 2021-07-04T17:39:00+00:00 https://alefisico.github.io/ECHEP/ 2022-12-01T00:00:00+00:00 https://alefisico.github.io/projects/livingmylifebehind_project/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/portfolio/ 2022-03-01T00:00:00+00:00 https://alefisico.github.io/projects/soccermatics_project/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/projects/teaching_EPN_Spring2023_NewtonianMechanics/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/projects/teaching_ETH_Spring2021/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/projects/valueplayeractions_project/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/teaching/jet_exercises/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/teaching/reana/ 2024-12-13T14:57:05+00:00 https://alefisico.github.io/ https://alefisico.github.io/cv/ https://alefisico.github.io/_pages/dropdown/ https://alefisico.github.io/news/ https://alefisico.github.io/people/ https://alefisico.github.io/projects/ https://alefisico.github.io/publications/ https://alefisico.github.io/repositories/ https://alefisico.github.io/teaching/ https://alefisico.github.io/blog/tag/formatting/ https://alefisico.github.io/blog/tag/links/ https://alefisico.github.io/blog/tag/images/ https://alefisico.github.io/blog/tag/code/ https://alefisico.github.io/blog/tag/math/ https://alefisico.github.io/blog/tag/comments/ https://alefisico.github.io/blog/tag/distill/ https://alefisico.github.io/blog/tag/diagrams/ https://alefisico.github.io/blog/tag/toc/ https://alefisico.github.io/blog/tag/tables/ https://alefisico.github.io/blog/tag/videos/ https://alefisico.github.io/blog/tag/audios/ https://alefisico.github.io/blog/tag/sidebar/ https://alefisico.github.io/blog/tag/blockquotes/ https://alefisico.github.io/blog/tag/jupyter/ https://alefisico.github.io/blog/tag/bib/ https://alefisico.github.io/blog/tag/charts/ https://alefisico.github.io/blog/tag/maps/ https://alefisico.github.io/blog/tag/citation/ https://alefisico.github.io/blog/category/sample-posts/ https://alefisico.github.io/blog/category/external-services/ https://alefisico.github.io/blog/2015/ https://alefisico.github.io/blog/2020/ https://alefisico.github.io/blog/2021/ https://alefisico.github.io/blog/2022/ https://alefisico.github.io/blog/2023/ https://alefisico.github.io/blog/2024/ https://alefisico.github.io/blog/ https://alefisico.github.io/blog/page/2/ https://alefisico.github.io/blog/page/3/ https://alefisico.github.io/blog/page/4/ https://alefisico.github.io/blog/page/5/ https://alefisico.github.io/blog/page/6/ https://alefisico.github.io/blog/page/7/ https://alefisico.github.io/blog/page/8/ \ No newline at end of file + https://alefisico.github.io/news/announcement_1/ 2015-10-22T19:59:00+00:00 https://alefisico.github.io/news/announcement_2/ 2015-11-07T20:11:00+00:00 https://alefisico.github.io/news/announcement_3/ 2016-01-15T11:59:00+00:00 https://alefisico.github.io/blog/2024/simple_story/ 2024-12-16T00:00:00+00:00 https://alefisico.github.io/blog/2022/life-lessons/ 2022-09-06T19:55:53+00:00 https://alefisico.github.io/blog/2022/perception/ 2022-08-28T11:42:45+00:00 https://alefisico.github.io/blog/2022/mixed-feelings/ 2022-08-24T18:01:10+00:00 https://alefisico.github.io/blog/2022/the-plan/ 2022-08-19T11:01:02+00:00 https://alefisico.github.io/blog/2022/harder-than-expected/ 2022-08-12T10:04:22+00:00 https://alefisico.github.io/blog/2022/between-runs-and-hikes/ 2022-08-04T17:11:46+00:00 https://alefisico.github.io/blog/2022/el-camino/ 2022-07-29T12:57:03+00:00 https://alefisico.github.io/blog/2022/who-am-i/ 2022-07-26T19:40:32+00:00 https://alefisico.github.io/projects/blog/ 2021-07-04T17:39:00+00:00 https://alefisico.github.io/ECHEP/ 2022-12-01T00:00:00+00:00 https://alefisico.github.io/projects/livingmylifebehind_project/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/portfolio/ 2022-03-01T00:00:00+00:00 https://alefisico.github.io/projects/soccermatics_project/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/projects/teaching_EPN_Spring2023_NewtonianMechanics/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/projects/teaching_ETH_Spring2021/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/projects/valueplayeractions_project/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/teaching/jet_exercises/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/teaching/reana/ 2024-12-17T15:36:12+00:00 https://alefisico.github.io/ https://alefisico.github.io/cv/ https://alefisico.github.io/_pages/dropdown/ https://alefisico.github.io/news/ https://alefisico.github.io/people/ https://alefisico.github.io/projects/ https://alefisico.github.io/publications/ https://alefisico.github.io/repositories/ https://alefisico.github.io/resume/ https://alefisico.github.io/teaching/ https://alefisico.github.io/blog/tag/bio/ https://alefisico.github.io/blog/category/bio-posts/ https://alefisico.github.io/blog/2024/ https://alefisico.github.io/blog/2022/ https://alefisico.github.io/blog/ https://alefisico.github.io/blog/page/2/ \ No newline at end of file diff --git a/teaching/index.html b/teaching/index.html index 7e1b5f9..f94b173 100644 --- a/teaching/index.html +++ b/teaching/index.html @@ -1 +1 @@ - teaching | Alejandro Gomez Espinosa Ph.D.

                                          teaching

                                          Materials for courses I have created.

                                          \ No newline at end of file + teaching | Alejandro Gomez Espinosa Ph.D.

                                          teaching

                                          Materials for courses I have created.

                                          \ No newline at end of file diff --git a/teaching/jet_exercises/index.html b/teaching/jet_exercises/index.html index 67d2afc..0e4dcd7 100644 --- a/teaching/jet_exercises/index.html +++ b/teaching/jet_exercises/index.html @@ -1 +1 @@ - CMS DAS Jet Exercise | Alejandro Gomez Espinosa Ph.D.

                                          CMS DAS Jet Exercise

                                          This is the official CMSDAS Jet Exercise. I didn't do everything myself, but I update it to new tools like coffea and correctionlib in 2023.

                                          \ No newline at end of file + CMS DAS Jet Exercise | Alejandro Gomez Espinosa Ph.D.

                                          CMS DAS Jet Exercise

                                          This is the official CMSDAS Jet Exercise. I didn't do everything myself, but I update it to new tools like coffea and correctionlib in 2023.

                                          \ No newline at end of file diff --git a/teaching/reana/index.html b/teaching/reana/index.html index 8597a9f..04c317d 100644 --- a/teaching/reana/index.html +++ b/teaching/reana/index.html @@ -1 +1 @@ - CMS CAT Snakemake/REANA tutorial | Alejandro Gomez Espinosa Ph.D.

                                          CMS CAT Snakemake/REANA tutorial

                                          CMS CAT Snakemake/REANA tutorial

                                          \ No newline at end of file + CMS CAT Snakemake/REANA tutorial | Alejandro Gomez Espinosa Ph.D.

                                          CMS CAT Snakemake/REANA tutorial

                                          CMS CAT Snakemake/REANA tutorial

                                          \ No newline at end of file