Wednesday, April 20, 2016

TikZ (PGF) Packages

I haven't found an up-to-date list of packages that use/support the wonderful PGF/TikZ library, so I went through the latex packages in the latest TexLive and found these.  It's not exhaustive but it's better than nothing.  I excluded some libraries that use pgf/tikz under the covers (e.g. chemmacros).


  • aobs-tikz  -  overlayed pictures in beamer
  • bloques -  control blocks
  • blox - block diagrams
  • bondgraphs - 
  • braids - braid diagrams
  • celtic - celtic-style knots
  • circuitikz - electrical and electronic networks.  NB: tikz 3.0.1a has builtin support for some circuit libraries that was inspired by this library.
  • csvsimple - uses key-value syntax from pgfkeys
  • diadia - diabetes diary
  • endiagram - potential energy curve diagrams
  • forest - linguistic trees
  • hf-tikz  -  highlight formulas
  • hobby - a tikzlibrary implementing John Hobby's algorithm for cubic bezierz curves
  • makeshape - method of creating custom shapes in PGF
  • mframed  - Framed environments that can split at page boundaries
  • ocgx - Optional Content Group support (layers)
  • pgf-blur - blurred shadows
  • pgf-soroban
  • pgf-umlcd
  • pgf-umlsd
  • pgfgantt
  • pgfkeyx
  • pgfopts
  • pgfornament
  • pgfplots
  • prooftrees  -  based on forest
  • sa-tikz "a library to draw switching architectures"
  • spath3
  • tikz-3dplot
  • tikz-cd  -  commutative diagrams
  • tikz-dependency - dependency diagrams for linguistics
  • tikz-dimline  -  technical dimension lines (e.g. showing a widget is 4cm wide, etc)
  • tikz-feynman
  • tikz-inet  -  interaction nets
  • tikz-opm  -  Object Process Methodology diagrams
  • tikz-plattice  -  particle accelerator lattices
  • tizk-qtree -  2012.  NB: tikz 3.0.1a (and maybe earlier) has extensive built-in support for trees
  • tikz-timing - timing diagrams
  • tikzinclude - importing images
  • tikzmark  -  mark a point in a page for further use
  • tikzorbital - molecular diagrams
  • tizkpagenodes - extending current page nodes
  • tikzpfeile  -  arrows
  • tikzposter - generate scientific posters
  • tikzscale - absolute resizing
  • tikzsymbols - great collection of symbols that started with cookbook symbols and then grew
  • tkz-orm - Object-Role Model drawing.  NB: *not* part of the TKZ collection.
  • visualtikz - excellent visual documentation for tikz: extensive collection of simple examples showing syntax and result

The Altermundus TKZ Collection

This collection of PGF/TikZ libraries by the prolific Alain Matthes is so awesome it deserves its own section.  Some of the documentation is in French only.  (Note the spellings, tkz v. tikz)
  • alterqcm  -  two-column multiple choice questions  (Fr)
  • tizkrput - macro for placing stuff
  • tkz-base
  • tkz-berge - graphs (En)
  • tkz-euclide - an amazing library for doing good old fashioned geometry.   The doc is in French but if you know TikZ you can probably figure it out; if not, its a very good reason to learn French.
  • tkz-fct - 2d function plotting
  • tkz-graph  - more graphs (Fr)
  • tkz-linknodes - links between lines of an environment (En)
  • tkz-kiviat
  • tkz-tab  -  very fancy table support (Fr)
  • tkz-tukey

Monday, April 11, 2016

Developer-friendly IoT devices and tools

IoT Overview:
  • Arduino/Genuino 101 - the new Arduino uses the Intel Curie!  See also the Intel Arduino101 site.
  • ESP8266  This is a very impressive and cheap little IoT device - MCU, WIFI, etc. for a couple of bucks!  Breakout modules for anywhere from $6 to $10.  Do a web search and you'll find lots of ESP8266 info and products; a good place to start is  Support for Lua and Javascript.  CAVEAT: the ESP8266 has already been through numerous versions so make sure you get the one you want.
  • Intel Edison - a little more expensive but a lot more powerful - a CPU running Linux, a separate MCU, a DSP, Wifi, Bluetooth, lots of memory, etc.
  • Texas Instruments has tons of IoT stuff.  Look for the Launchpad for the device you're interested in - these are inexpensive Arduino-like dev boards that make it easy to tinker.  The website also has lots of background info, whitepapers, training vids, etc.  See in particular
  • OpenMote
  • Other HW vendors: the semiconductor market is very competitive, with many major players and heaven knows how many smaller ones. Many of them are beginning to offer Arduino-like development boards for products that previously would only have been of interest to professional EEs.  See for example:
    • NXP - Formerly Philips Semiconductor.  NXP recently acquired Freescale, which was formerly the semiconductor division of Motorola
    • Atmel - recently acquired by Microchip.  Up until the release of the Arduino101, which uses the Intel Curie MCU, Arduinos used Atmel MCUs
    • STMicroelectronics
  • Online IoT-friendly retailers: lots.  I've had good luck with these, but there are lots of others; do shop around.
  • Make - maker zine

  • Espruino
  • NodeMCU "open-source firmware and development kit that helps you to prototype your IOT product within a few Lua script lines"  (ESP8266)
  • AT&T Flow - web-based dev environment.  based on:
  • Node-RED - "A visual tool for wiring the Internet of Things" (developed and open-sourced by IBM)
  • Alljoyn
  • Iotivity
Operating Systems:
Standards bodies:

Cloud services - testing, data storage, etc.

  • IoT-LAB  "IoT-LAB provides a very large scale infrastructure facility suitable for testing small wireless sensor devices and heterogeneous communicating objects."

  • awesome-iot - a list of IoT resources somebody put on github
  • IPSO Alliance page listing devices for building smart objects