../_images/sknrf_logo.png

Tools

This document defines the development tools in terms of: * Documentation Page * Summarized purpose * Licencing

Software Languages

Name Description License
Dynamically-typed, interpreted language for deployment in front-end web applications
  • Client-side webpage scripting.
  • E-Commerce and user-forums available for purchase.
  • License: Public
  • BSD-Like: No
Dynamically-type, object-oriented, interpreted language for deployment of cross-platform executable/library bytecode
  • License: Python Software Foundation
  • BSD-Like: Yes
Static-typed, object-oriented, compiled language for deployment of native PC executable/library binaries
  • License: Public
  • BSD-Like: No
Verilog Static-typed, hardware description language (HDL), for deployment on field-programmable gate array
  • License: IEEE1364-2005
  • BSD-Like: No
Cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.
  • License: BSD
  • BSD-Like: Yes
reStructuredText Lightweight Markdown language capable of generating HTML, PDF, EPub, or man formats
  • License: Public
  • BSD-Like: No

Python Packages (Libraries)

Name Description License
Python distribution for large-scale data processing, predictive analytics, and scientific computing.
  • Python package manager installed to the local user directory.
  • Containins nearly all of the packages listed in this table.
  • Python packages can be installed or updated via command-line utility.
  • Virtual python environments can be created for testing new packager versions without administrator priveleges.
  • Local development python environments do not overright the system python installation.
  • License: ???
  • BSD-Like: ???
pip Built-In command line install any package from Python Package Index
  • Python package manager installed to the global system directory.
  • Contains minimal python installation.
  • Python packages can be installed or updated via command-line utility.
  • License: MIT
  • BSD-Like: Yes
N-dimensional array package
  • More memory efficient that python List type, with vector operations implemented in C.
  • Data is interpreted in 2 ways:
    1. As N dimensional Arrays (for data buffers)
    2. 2D Matrix types (for linear algebra).
  • Algebra operations are implemented in 2 ways:
    1. Short-hand convenience operators eg.(d = (a+b)*c).
    2. Memory efficient "ufuncs" that avoid temporary variables multiply eg.(sum(a,b,out=d),c,out=d).
  • License: BSD
  • BSD-Like: Yes
Scientific Library for Python
  • A large linear algebra implementation of LINPAC and BLAS that uses numpy arrays.
  • Slowly being broken up into separate scikits.
  • Useful for fft and reading Matlab database files.
  • License: BSD
  • BSD-Like: Yes
Package for RF/Microwave engineering
  • RF tools, mainly centered around network theory.
  • Calibration and De-embedding.
  • RF plotting tools implemented in Matplotlib.
  • License: BSD
  • BSD-Like: Yes
2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
  • A central Python analytical plotting library that many other libraries use.
  • Very comprehensive, very interactive, but not suitable for real-time plotting.
  • Can be embedded in Qt applications and IPython notebooks.
  • Two programming modes:
    1. State-based Matlab-Like pyplot for interactive plotting commands (usefull for IPython notebook).
    2. Full object-oriented API for software development.
  • License: PSF-based
  • BSD-Like: Yes
Online graphing, analytics, and stats tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, and REST.
  • Web-based post-processing of data stored on a server.
  • Can convert Matplotlib plots to online plots.
  • Python, R, MATLAB, Node.js, Julia, and Arduino and a REST API.
  • Can be embedded inside a IPython notebook or inside a custom Javascript dashboard using Plotly.js.
  • Hosted on external or internal server.
  • Implemented in Python, Django, and JavaScript.
  • License: Commercial
  • BSD-Like: No
  • Pricing: $60/month/organization
Managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data.
  • Binding HDF5 databases (used in .mat files) with NumPy arrays.
  • Useful for large datasets or hierarchical datasets.
  • Data can be access from memory or disk using NumPy API.
  • License: BSD
  • BSD-Like: Yes
nose Extends unittest to make batch testing easier
  • Enhancement of built-in Unit testing.
  • Good for running unit-tests in batches.
  • License: LGPL
  • BSD-Like: No
Makes it easy to create intelligent and beautiful documentation
  • Web Docs are written using reStructured Text (.rst) which is converted to HTML.
  • Web API is autogenerated from comments in Python/C++ code.
  • License: BSD
  • BSD-Like: Yes
Python bindings for the Qt.
  • C++ wrappers of Qt4 that are compiled as shared objects (.so).
  • Command line tool that converts Qt Designer (.ui) files to python (.py) files.
  • License: LGPL
  • BSD-Like: No
Shiboken Plugin (front-end) for Generator Runner. It generates bindings for C++ libraries using CPython source code.
  • CPython wrapper generator that binds C++ objects (Qt) to Python objects.
  • Supports cross-language inheritance, overloading, and encapsulation.
  • Basic support for C++ container types and no support for C++ template classes.
  • License: LGPL
  • BSD-Like: No
Boost.Python A C++ library which enables seamless interoperability between C++ and the Python programming language.
  • C++ template wrapper generator that binds C++ objects to Python objects.
  • Better support for C++ containers with dynamic types (eg. NumPy arrays).
  • Generates very large binary files.
  • License: BSL
  • BSD-Like: ???
Boost.NumPy Boost.NumPy is an extension for Boost.Python that adds NumPy support.
  • License: BSL
  • BSD-Like: ???
Optimising static compiler for both the Python programming language and the extended Cython programming language
  • Used to bind C and Python
    1. Convert any Python (.py) to Cython (.pyc) by changing the file extension.
    2. Add Cython specific syntax including static types, function type information, and disable limit checking to optimize code.
    3. Compile as a shared object (.so) and import into Python.
  • License: Apache
  • BSD-Like: Yes
Numba With a few annotations, array-oriented and math-heavy Python code can be just-in-time (JIT) compiled to native machine instructions, similar in performance to C, C++ and Fortran, without having to switch languages or Python interpreters.
  • Just-In-Time (JIT) compiler that uses LLVM compiler to compile Python code on the fly.
  • The code is compiled on first execution and may produce lag.
  • Can be used to optimize Python code without converting to Cython using (@)decorators.
    1. Add "@jit" for lazy function optimization.
    2. Add addtional function type information for better optimization.
  • License: BSD
  • BSD-Like: Yes
Paramiko Implementation of the SSHv2 protocol, providing both client and server functionality.
  • License: LGPL
  • BSD-Like: No
High-level Python Web framework that encourages rapid development and clean, pragmatic design
  • License: BSD
  • BSD-Like: Yes

C++ Libraries

Name Description License
Cross-platform application framework that is widely used for developing application software.
  • License: LGPL
  • BSD-Like: Yes
Provide support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing
  • License: BSD
  • BSD-Like: Yes

Productivity Tools

Name Description License
General-purpose document generation
  • License: Proprietary
  • BSD-Like: No
All your communication in one place, integrating with the tools and services you use every day.
  • License: Proprietary
  • BSD-Like: No
  • Price: $96/person
Email and Google Account
  • License: Proprietary
  • BSD-Like: No
Cloud file storage for collaboration
  • License: Proprietary
  • BSD-Like: No
A cross-platform, distributed revision control tool for software developer.
  • License: Proprietary
  • BSD-Like: No
Shell extension and a series of applications for the Mercurial distributed revision control system.
  • License: Proprietary
  • BSD-Like: No
A web-based hosting service for projects that use either the Mercurial (since launch) or Git (since October 2011[1]) revision control systems.
  • License: Proprietary
  • BSD-Like: No
Rich console/notepad architecture for interactive computing
  • License: BSD
  • BSD-Like: Yes
Python, Javascript intellegent interactive development environment (IDE)
  • License: Public
  • BSD-Like: No
Cross-platform IDE (integrated development environment) tailored to the needs of Qt developers.
  • License: LGPL
  • BSD-Like: No
A powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
  • License: GPL
  • BSD-Like: No
A web-based diagramming software which allows users to collaborate and work together in real time to create flowcharts, organisational charts, website wireframes, UML designs, mind maps, software prototypes, and many other diagram types.
  • License: Proprietary
  • BSD-Like: No
Primarily used to organize references and maintain a library of PDF documents
  • License: Proprietary
  • BSD-Like: No