VirtualTam's bookmarks

  1. "The price for securing your network is eternal vigilance and also your soul." "Whose soul? We're sysadmins." "Oh, right. End users. Hang on, I have a jar of them under my desk. Let me get one out for you."

  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. Nigel Tufnel Day 2016-03-23

    In the run-up to 2011 Spinal Tap fans created a movement to make 11/11/11 "Nigel Tufnel Day." The movement was organised by The Nigel Tufnel Day Appreciation Society and Quilting Bee in Favor of Declaring & Observing November 11, 2011 as Nigel Tufnel Day (in Recognition of Its Maximum Elevenness). The theme of Nigel Tufnel Day was to take whatever you are doing on that day and "turn it up to 11".

  4. Git repository browser providing several colourful views:

    • file tree w/ revisions
    • different kinds of log
    • blame - when highlighting a line, displays the corresponding diff in a side pane

    see http://jonas.nitro.dk/tig/manual.html

  5. Check WMI Plus 2015-09-25

    Nagios plugin to perform check on Windows hosts - uses WMI

    See https://wiki.icinga.org/display/howtos/check_wmi_plus

  6. A GitHub-like contributions calendar, but locally, with all your git commits

  7. 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?