Skip to content

My Personal Notes

This repository: https://github.com/efurlanm/home/
Automatic generated website: https://efurlanm.github.io/home/
List of repositories on Github: https://github.com/efurlanm?tab=repositories

Welcome to my random personal notes that I collect over time, on the most varied subjects, such as design and implementation of languages, theory, internals, computer architecture, machine learning, high performance processing, programming, cluster, containers, books, links, tips and tricks, curiosities and others. The intention of my notes is not to be as accurate as possible, nor is it to be comprehensive.

The website is generated from plain text formatting files called Markdown available in the directories. The static site generator MkDocs is a tool used to convert these Markdown files into the web pages you see. Some of the Markdown files are described in the text, while others appear only as menu items. For Jupyter Notebook files, Markdown files are automatically generated and also appear in the menu. It is important to note that there are many other files in the repository that do not appear on the website itself. To see them all, you can browse the repository directly.

This repository is permanently under construction, so its contents change constantly

Some directories and files in this repository

(unsorted)

  • HPC - repository containing my personal notes on High-Performance Computing (HPC). Efficient language design and implementation are crucial for HPC because they directly impact the performance, scalability, and usability of HPC applications. Languages designed specifically for HPC, such as domain-specific languages (DSLs), can optimize parallelism, manage complex computations, and provide abstractions that simplify the development of high-performance code. Additionally, well-designed compilers and interpreters for these languages can further enhance performance by optimizing code execution on HPC systems.
  • Cluster/ - notes on my personal home cluster.
  • PAPI/ - portable performance counter library and related infos.
  • SDumont/ - my notes about the Santos Dumont supercomputer.
  • IDRIS/ - directory containing the MPI course, with many examples in F90, from the Institut du Développement et des Ressources en Informatique Scientifique (IDRIS).
  • Articles/ - interesting articles that I collect over time.
  • Python - my personal notes on Python-related topics that I find interesting.
  • Moving Forth - my personal notes on Brad Rodriguez's Moving Forth.
  • Fortran - my personal notes about Fortran, a high -level programming language that is historically linked to HPC due to its efficient handling of numerical and scientific calculations.
  • C - directory with my personal notes on the C programming language, which has efficiency and the ability to directly manipulate hardware resources, allowing optimized performance for compute-intensive tasks.
  • Assembly - my personal notes on the Assembly programming language.
  • Vintage - vintage computer internals.
  • Courses - list of courses I took at INPE.

F90 from University of Liverpool

Some files mirrored files from the University of Liverpool (ftp://ftp.liv.ac.uk/pub/) on Fortran 90 and High Performance Computing.

Files:

Note: the "HTMLHPFCourse" directory is the content of the compressed file HTMLHPFCourse.tar.gz

Original archived files:

Forums

  • Reddit Programming Languages - discussion of programming languages, programming language theory, design, their syntax and compilers.
  • Reddit Compilers - community where people discuss topics related to compiler design, construction, and theory.
  • comp.compilers newsgroup - forum within Usenet dedicated to discussions about compiler design, implementation, and usage.
  • Dynamic Load-balancing: A New Strategyfor Weather Forecast Models, by Rodrigues, E. R. - the thesis includes approaches such as compiler, processor, Thread, TLS, GDT, LDT, PAPI, Assembly, etc.
  • Compiler - in-depth overview of compilers, which are programs that translate source code written in a high-level programming language into machine code, assembly code, or an intermediate code.
  • History of compiler construction - historical overview of the development of compilers from the early days of computer science to the modern era. It discusses key milestones, influential projects, and significant advancements in compiler technology over the years.
  • Compilers course (in Portuguese) - lecture notes from the course I teach.
  • Threaded code - programming technique where the code consists primarily of subroutine calls.

My self-hosted webserver

  • My self-hosted website - I maintain my own server, where I host and manage applications, rather than relying on SaaS providers. This setup includes a router running OpenWrt, which I use extensively for testing and learning. Working with constrained systems in general has given me insights into developing and refining various performance optimization techniques, such as efficient resource allocation, lightweight software solutions, and simplified configurations. These practices, honed in constrained environments, not only maximize the potential of smaller systems, but also provide valuable insights and strategies that can be effectively applied to larger, more complex infrastructures.

License

My work follows the CC-BY-4.0 license. The works of other authors follow their licenses.


Last edited: 2025-02-06 10:53:11