Sunday, October 18, 2015

Windows Sysinternals

https://technet.microsoft.com/en-us/sysinternals/bb842062

The Sysinternals Troubleshooting Utilities have been rolled up into a single Suite of tools. Extremely useful in the command line environment.

Sunday, October 11, 2015

The Z3 SMT solver

Z3 is a Satisfiability Modulo Theories (SMT) solver. It is an automated satisfiability checker for many-typed first-order logic with built-in theories, including support for quantifiers. The currently supported theories are:
  • equality over free (aka uninterpreted) function and predicate symbols
  • real and integer arithmetic
  • bit-vectors and arrays
  • tuple/records/enumeration types and algebraic (recursive) data-types.
Z3 checks whether a set of formulas is satisfiable in the built-in theories. When the set of formulas is existential then Z3 is a decision procedure: it is always guaranteed to return a correct answer.
  • If a set of formulas F is satisfiable, Z3 can produce a model for F.
  • If a set of formulas contains universal quantifiers, then the model produced by Z3 should be viewed as a potential model, since Z3 is incomplete in this case.

Thursday, August 20, 2015

Type classes in Haskell

The inter-relationships of the type classes in the standard Haskell libraries:



  • Solid arrows point from the general to the specific; that is, if there is an arrow from Foo to Bar it means that every Bar is (or should be, or can be made into) a Foo.
  • Dotted arrows indicate some other sort of relationship.
  • Monad and ArrowApply are equivalent.
  • Semigroup, Apply and Comonad are greyed out since they are not actually (yet?) in the standard Haskell libraries.
Source: Typeclassopedia

Sunday, July 26, 2015

How to present a regular paper in 15 minutes

  • The purpose of presentation is to impress the potential readers of your paper, not to let them understand your paper in 15 minutes.
  • Example organization: 
    • Motivation (e.g., show a running example)
    • Related work and contribution
    • Background and overview
    • Explain the main approaches/results
    • Experimental results (if any)
    • Conclusions (e.g., summary and future work)
  • Use short and simple sentences on your slides. 
  • Use charts and diagrams instead of texts whenever possible.
  • Each slide should have a clear purpose. Remove all slides likely to confuse the audience.
  • Present the materials that your audiences (NOT you) are interested in.
    • They only care about how helpful your paper is for them.
  • Try to skip technical results and use high-level descriptions.
    • Most of the audience only care about the key ideas. 
    • Put the details in backup slides for Q&A.
  • Make sure your audience can follow you to the last slide.
    • Try to use a running example to explain your approaches.
    • Recall definitions, formulas, theorems, etc., upon distant references.