VirtualTam's bookmarks

  1. iptables 2018-07-04

    Documentation:

    Articles:

    How-tos:

    Routing:

    RHEL Documentation:

  2.  1for (agent in hudson.model.Hudson.instance.slaves) {
     2  println('====================');
     3  println('Name: ' + agent.name);
     4  println('getLabelString: ' + agent.getLabelString());
     5  println('getNumExectutors: ' + agent.getNumExecutors());
     6  println('getRemoteFS: ' + agent.getRemoteFS());
     7  println('getMode: ' + agent.getMode());
     8  println('getRootPath: ' + agent.getRootPath());
     9  println('getDescriptor: ' + agent.getDescriptor());
    10  println('getComputer: ' + agent.getComputer());
    11  println('\tcomputer.isAcceptingTasks: ' + agent.getComputer().isAcceptingTasks());
    12  println('\tcomputer.isLaunchSupported: ' + agent.getComputer().isLaunchSupported());
    13  println('\tcomputer.getConnectTime: ' + agent.getComputer().getConnectTime());
    14  println('\tcomputer.getDemandStartMilliseconds: ' + agent.getComputer().getDemandStartMilliseconds());
    15  println('\tcomputer.isOffline: ' + agent.getComputer().isOffline());
    16  println('\tcomputer.countBusy: ' + agent.getComputer().countBusy());
    17  //if (agent.name == 'NAME OF NODE TO DELETE') {
    18  //  println('Shutting down node!!!!');
    19  //  agent.getComputer().setTemporarilyOffline(true,null);
    20  //  agent.getComputer().doDoDelete();
    21  //}
    22  println('\tcomputer.getLog: ' + agent.getComputer().getLog());
    23  println('\tcomputer.getBuilds: ' + agent.getComputer().getBuilds());
    24}
    
  3. item = Jenkins.instance.getItemByFullName("your-job-name-here")
    
    // THIS WILL REMOVE ALL BUILD HISTORY
    item.builds.each() { build ->
      build.delete()
    }
    item.updateNextBuildNumber(1)
    
  4. 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?
  5.  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 "git rm --cached --ignore-unmatch FILES_AND_DIRS_TO_DELETE"
     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 "git rm --cached --ignore-unmatch OTHER_FILES_AND_DIRS_TO_DELETE"
    17git gc --aggressive --prune=1day
    18git fsck --unreachable
    19# broforce push!
    20git push -f origin master