GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com โ€” fangq - Overview

@fangq fangq Follow
More
  • Overview
  • Repositories
  • Projects
  • Packages
  • Stars
  • Sponsoring
@fangq
fangq
Follow
View fangq's full-sized avatar
๐Ÿ’ญ
https://neurojson.org

Qianqian Fang fangq

๐Ÿ’ญ
https://neurojson.org
Follow
A scientific programmer, technical writer, teacher and get-your-hands-dirty kind of engineer. Eager to create, eager to share!
262 followers ยท 13 following
  • Northeastern University
  • Boston, MA
  • https://neurojson.io
  • https://orcid.org/0000-0003-0805-935X
  • @FangQ
  • https://flickr.com/fangqq/
  • http://fanglab.org
  • https://mcx.space

Achievements

Achievement: Galaxy BrainAchievement: Pair ExtraordinaireAchievement: YOLOAchievement: Pull Sharkx3Achievement: Public SponsorAchievement: QuickdrawAchievement: Arctic Code Vault ContributorAchievement: Starstruckx2

Achievements

Achievement: Galaxy BrainAchievement: Pair ExtraordinaireAchievement: YOLOAchievement: Pull Sharkx3Achievement: Public SponsorAchievement: QuickdrawAchievement: Arctic Code Vault ContributorAchievement: Starstruckx2

Organizations

@fNIRS @NeuroJSON
More
  • Overview
  • Repositories
  • Projects
  • Packages
  • Stars
  • Sponsoring
fangq/README.md

Some random thoughts related to programming

  • Small is beautiful! This is a Unix philosophy that every programmer should be reminded of!
  • To me, it is a "crime" to write a program that can only run on a specific OS or platform. I would never start a project on a toolchain that only runs on Windows or Mac.
  • I hate slow programs. That's why I use the GPU for MC simulations, that's why I prefer the adjoint method for Jacobians, and that's also why I love OpenMP so much โ€” because it is the cheapest way to make a program fast.
  • Be "lazy": let the computer do everything, including:
    • you have to know how to use a code formatter (astyle, mh_style, black/blue, perltidy) to consistently reformat your code before every commit
    • you have to enable warnings โ€” -Wall or even -pedantic โ€” to let the compiler do the hard work and tell you which parts it considers problematic, and fix every warning
    • if you don't know how to create automated testing to verify code features and detect regressions after each commit, you are outdated
    • you got to know how to use a memory checker (valgrind, cuda-memcheck, compute-sanitizer)! It is THE simplest way to expose serious issues right in front of your eyes without asking much of you โ€” this is the least you can do: FIX EVERY MEMORY ERROR!
    • to make your code fast, you'd better know how to use a profiler (valgrind --tool=cachegrind, Kcachegrind, ncu, nvprof); in most cases, your slow runtime is likely due to a few lines of inefficient code, and you need to find them
  • The best way to learn a programming language is to learn it when you need it. You can't learn it by reading a book.
  • Understanding and respecting open-source licenses is the VERY first step for anyone interested in doing open-source software.
  • Do not despise FORTRAN โ€” it was, and still is, the backbone of modern numerical computing, and MATLAB was built on it (MATLAB's matrix slicing with : came from FORTRAN).
  • Many people don't realize it - fonts are the #1 visual element in a modern graphics environment. They are more visible than window borders, shadows, and your wallpapers. Almost all graphics-savvy users start by designing their own fonts because they are tired of the ordinary ones.
  • Use open-source whenever you can! It is perpetual (and so is the license that lets you use it).
  • Do not always chase the newest and shiniest frameworks. Use something that has endured the test of time. They have lasted for decades, and they will continue to survive for decades.

Popular repositories Loading

  1. iso2mesh iso2mesh Public

    Iso2Mesh - a 3D surface and volumetric mesh generator for MATLAB/Octave

    MATLAB 216 80

  2. mcx mcx Public

    Monte Carlo eXtreme (MCX) - Physically accurate and validated GPU ray-tracer

    Pascal 198 100

  3. mmc mmc Public

    Mesh-based Monte Carlo (MMC)

    C 59 36

  4. mcxcl mcxcl Public

    Monte Carlo eXtreme for OpenCL (MCXCL)

    C 47 34

  5. brain2mesh brain2mesh Public

    Brain2Mesh - a one-liner for high-quality brain mesh generation

    MATLAB 41 15

  6. redbird redbird Public

    Redbird - A Model-Based Diffuse Optical Imaging Toolbox

    MATLAB 7

Something went wrong, please refresh the page to try again.
If the problem persists, check the GitHub status page or contact support.

Uh oh!

There was an error while loading. Please reload this page.

You are visitor 01402503 โ€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800ร—600. No cookies required.