VirtualTam's bookmarks

  1. Discussion de fond sur l'auto-hébergement de code source via Git :

    • mise en place d'une interface d'administration web,
    • fonctionnalités couvertes : granularité des droits, CI, wiki,
    • simplicité d'utilisation,
    • réactivité,
    • interactivité avec la communauté / cadre d'utilisation.
  2. Uses a project or repository's history to plot user contributions, displaying an elegant, colored graph of the file arborescence.

    After running it on quite different projects...

    • Python/Bash CI/Jenkins scripts
    • Qt apps: GoldenDict, Psi+
    • PHP website: Shaarli

    ...watching some vids on teh intartubez:

    It allows to arbitrary spot some interesting implementation aspects (sorted by descending impact):

    • language-dependent trees (oh hai Java packages ^^)
    • framework-dependent trees
    • project-management method (none, Agile, TDD)

    Having a graphical tool also quickly shows:

    • the overall structure of the project (a bit cooler than a simple $ tree, way quicker than loading the project on an IDE)
    • the repartition of files (by extensions)
    • who are the most active contributors
    • what are the most modified files over time
    • who does what: additions, deletions, refactoring

    Some more CI-related matters:

    • are there any tests?
    • what is the source code / test code ratio? (we could expect a project/lib with N modules to have at least N test modules)
    • who initiates / implements / optimizes test code?
  3.  1# Global
     2/etc/environment
     3
     4# X Session
     5/var/lib/AccountsService/users/<username>
     6~/.dmrc
     7~/.xinitrc
     8~/.xprofile
     9
    10# Session
    11/etc/profile
    12/etc/profile.d/*.sh
    13~/.profile
    14
    15# Bash
    16/etc/bash.bashrc
    17~/.bash_profile
    18~/.bashrc
    19
    20# ZSH
    21/etc/zsh/zprofile
    22~/.zshrc
    23
    24# Locales
    25/etc/locale.conf
    26/etc/locale.gen
    27~/.config/locale
    28
    29# Superusers
    30/etc/login.defs
    31/etc/sudoers (use visudo to edit)
    32
    33# SSH
    34/etc/ssh/sshd_config (server-side, can allow the client to pass variables)
    35/etc/ssh/ssh_config (client-side, can send variables to servers)
    36
    37# SaltStack
    38/etc/default/salt-minion (not always included in the distro's packages)
    
  4.  1# first, clone the repository
     2git clone REPO REPO2
     3cd REPO2
     4# remove all unneeded files from this version
     5git filter-branch -f --prune-empty --index-filter &quot;git rm --cached --ignore-unmatch FILES_AND_DIRS_TO_DELETE&quot;
     6git gc --aggressive --prune=1day
     7git fsck --unreachable
     8# refresh the remote
     9git remote rm origin
    10git remote add origin ssh://HOST/REPO
    11# broforce push!
    12git push -f origin master
    13
    14# cleanup our original repository
    15cd REPO
    16git filter-branch -f --prune-empty --index-filter &quot;git rm --cached --ignore-unmatch OTHER_FILES_AND_DIRS_TO_DELETE&quot;
    17git gc --aggressive --prune=1day
    18git fsck --unreachable
    19# broforce push!
    20git push -f origin master