VirtualTam's bookmarks

  1. "Currently I am coding love and relationships into the game, and am having to deal with some colonists who are getting a bit polyamorous with the non-sentient furniture items. I am yet to decide as to whether this is a bug."

  2. A whole buncha' links with contradictory information on how to properly set up a mail server ;-)

    Disclaimer - My primary goal is to add proper Spamassassin (SA) filtering to an existing Postfix / Dovecot / roundcube installation, i.e.:

    • use SA as a milter (mail filter) to attribute a spam score to incoming mail
    • keep SA up-to-date
    • train SA with spam/ham from the users' virtual mailboxes
    • train SA according to user decisions (actual user or trained mail client with automatic/trained spam detection)

    Here we go!

    Most useful links; I stumbled upon them as soon as I knew what to look for:

    Official:

    Debian:

    CentOS:

    RHEL:

  3. Python's built-in unittest module is quite cool, but a bit limited and way too verbose (read: it's quite not easy to incite developers to write unit tests)

    I'm currently looking for more dev-friendly solutions, the key points being:

    • writing test code should be easy and straight-forward -keep the focus on "what to test" instead of "how to transcribe a process to a test"
    • parallelization! -we, spoiled developers, should make good use of our way-too-many-cores build machines...
    • complete feature set!
      • we don't want to just run tests...
      • coverage reports (find dead/weak/untested code sections)
      • output formatting (JUnit-XML seems to be quite a common format out there)

    There seem to be 3 solutions in Python:

    • stock unittest + project-dependent customizations / test helpers
    • nosetests
    • py.test

    And 2 ways of gettings things done:

    • keeping things stock: no external dependency, project-specific implementation...
    • using a test framework: one more module in your (test) virtualenv, more concise tests, more features (// run, code coverage, etc.)

    Some links:

  4. "tl;dr: You want to teach yourself vim (the best text editor known to human kind) in the fastest way possible. This is my way of doing it. You start by learning the minimal to survive, then you integrate all the tricks slowly."

    Though a bit biased, it for sure is an interesting read

  5. Framadate 2014-11-29

    Studs => OpenSondage => Framadate

    A doodle-like event scheduler.

    Though it seemed a bit crippled when I attempted to fork it early '14, it looks like it has gained in maturity, thanks to Framasoft's efforts ;-)

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