ICalico
ICalico is a new method of interacting with Calico. In addition, a host of new functionality is available.
What is ICalico? It is a graphical user interface (GUI) to Calico through a web browser. Everything currently runs locally, so it isn't something on the world wide web, but rather a interface to write code using the browser as the GUI. You'll need ipython and Calico 3 or greater to use.
To get an idea of what ICalico is, see the sample notebooks here:
http://nbviewer.ipython.org/urls/bitbucket.org/ipre/calico/raw/master/notebooks/Index.ipynb
Contents
Installation
- Install IPython version 2.0.0 or greater
- http://ipython.org/install.html - We suggest using the Anaconda installer for its ease of use
- If you do not use Anaconda, you may have to build zmq from source
- Make sure that ipython is in your path (type "ipython" at a console prompt)
- Anaconda will do this for you. You may have to logout, close/open terminal window, or reboot after installing
- On Windows, if you need to manually set your path, use something like:
PATH=%PATH%;c:\Python27\Scripts
- http://ipython.org/install.html - We suggest using the Anaconda installer for its ease of use
- Install Calico version 3.0.0 or greater
- Calico Download
- Put Calico where it will live before going on
- Start IPython with Calico profile
-
icalico
-
- To Stop IPython Server
- Make sure to save your notebook in browser (control+s)
- Shutdown server in console window: control+break on Windows; control+c on Linux/Mac
A web page should open up which will allow you to enter scripts and Calico "magic" commands (see below).
Trouble shooting
If a webpage opens, you should be able to open a Notebook (either old or make a new one. On the new Notebook page, you should see:
- the purple Calico butterfly logo in the upper-left corner
- if you type
calico
in a cell and evaluate it (control+enter) it should respond back with the Calico version number, like <Calico version 3.0.0>
If a webpage does not open, some things to check:
- Is
ipython
on your path? - Do you have a default web browser?
- On Linux and Mac, is
mono
on your path?
Other questions? Please ask on the calico-users mailing list.
NOTE: If you move the Calico folder, you should re-create a new Calico profile:
-
cd Calico
-
calico --create-profile
Getting Started
For an introduction to this manner of interacting with programs, please see:
http://nbviewer.ipython.org/urls/bitbucket.org/ipre/calico/raw/master/notebooks/Index.ipynb
Editing
Each cell in a notebook can be one of the following:
- Code
- Markdown
- Raw text
- Heading 1 through 6
You can change what type of data is in a cell by changing it in the menu selection.
Code
If the cell is marked Code, then you can enter commands (from Python by default). Press shift/control/alt Enter to evaluate.
Magics
You can also enter a "magic" command. These are proceeded by:
- a single-percent sign for magic-line commands
- two percent signs for magic-cell commands
- three percent signs for magic sticky, notebook commands
The magic line commands are:
%connect_info | show ICalico JSON connection information |
%download url [file] | download a URL to a file |
%edit FILENAME | edit a file in an external editor |
%lang | get information on current language |
%lang LANG EXPRESSION | evaluate the EXPRESSION in the given LANGUAGE |
%magic | get information on magic meta-commands |
%nuget COMMAND ARGS... | perform a NuGet command, such as install. See http://www.nuget.org/ for more details. |
%qtconsole | start a qtconsole |
%run FILENAME | run a file (language determined by extension) |
The magic cell commands are:
%%dot [options] | create a GraphViz dot diagram with contents of cell |
%%file FILENAME | create a filename with contents of cell |
%%html | treat the cell as HTML |
%%javascript | treat the cell as Javascript data |
%%latex | treat the cell as Latex |
%%lang LANGUAGE | change language for just this cell |
%%svg | treat the cell as SVG data |
%%time | time how long it takes to run this cell |
The magic notebook commands are:
%%%lang LANGUAGE - change language for rest of cells (or until another %%%lang command)
If the cell is marked as Markdown, then you can use Markdown syntax, including some LaTeX commands.
Documentation
Technically, ICalico is a "IPython kernel". However, of course ICalico can operate using any of a number of languages.
Editing Notebooks
You can drag and drop images onto a notebook when editing.
Starting with ICalico 3.0.1, the last statement in a Python cell is also an output result.
Magics
ICalico magics are "meta" commands: commands for the ICalico system, separate from any Calico language.
- One preceding percent sign indicates a "magic line command" (applies to just the line)
- Two preceding percent signs indicates a "magic cell command" (applies to just the cell)
- Three preceding percent sign indicates a "magic notebook command" (applies from here to rest of notebook)
Any cell can have any number of magic commands, but they must all appear first, before any code.
%connect_info - show ICalico JSON connection information %download url [file] - download a URL to a file %%dot [options] - create a [http://www.graphviz.org/doc/info/lang.html GraphViz dot] diagram with contents of cell %edit FILENAME - edit a file in an external editor %%file FILENAME - create a filename with contents of cell %%html - treat the cell as HTML %%javascript - treat the cell as Javascript data %lang - get information on current language %lang LANG EXPR - execute EXPR in given LANG %%lang LANGUAGE - change language for just this cell %%%lang LANGUAGE - change language for rest of cells %magic - get information on magic meta-commands %nuget COMMAND ARGS - execute a nuget command %qtconsole - start a qtconsole %run FILENAME - run a file (language determined by extension) %%svg - treat the cell as SVG data %%time - time how long it takes to run this cell
Examples:
%%latex \begin{eqnarray} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}
Display Functions
These are available from the Calico: calico object:
- animate(item[, item]*) - redisplay one or more items with little jitter (for animating a display)
- display(item[, item]*) - display one or more items to the notebook output area
- display_html(item)
- display_javascript(item)
- display_json(item)
- display_svg(item)
- display_png(item)
- display_jpeg(item)
- display_latex(item)
- display_pdf(item)
Examples:
for i in range(10): calico.animate(image) calico.display_json(json_data)
Rich Media Objects
All of the rich media objects are available from the Calico: calico object.
- Audio(URI)
- HTML(string)
- Javascript(string)
- Latex(string)
- Math(string)
- Table()
- Image(URI)
- YouTubeVideo(id, width, height)
- IFrame(src)
- SVG(xml)
- FileLink(filename)
- FileLinks(directory)
- VimeoVideo(id)
Examples:
calico.display(calico.HTML("<b>This is bold!</b>"))
calico.HTML('<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350></iframe>')
calico.Latex(""" \\begin{eqnarray} \\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\ \\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\ \\nabla \\times \vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\ \\nabla \\cdot \\vec{\\mathbf{B}} & = 0 \\end{eqnarray} """)
Widgets
Widgets allow for creating interactive interfaces, when connected to an executing kernel. All of the widgets are available from the Calico: calico object.
- AccordionWidget
- BoundedFloatTextWidget
- BoundedIntTextWidget
- ButtonWidget
- CameraWidget
- CheckboxWidget
- ContainerWidget
- DropdownWidget
- FloatProgressWidget
- FloatSliderWidget
- FloatTextWidget
- HTMLWidget
- ImageWidget
- IntProgressWidget
- IntSliderWidget
- IntTextWidget
- LatexWidget
- PasswordWidget
- PopupWidget
- RadioButtonsWidget
- SelectWidget
- TabWidget
- TextWidget
- TextareaWidget
- ToggleButtonWidget
- ToggleButtonsWidget
Those above that are container widgets:
- AccordionWidget
- ContainerWidget
- PopupWidget
- TabWidget
All of these widgets have display() and animate() methods.
widget.display() widget.animate()
w1 = calico.AccordionWidget(children=[calico.ButtonWidget()]) w2 = calico.BoundedFloatTextWidget(description="BoundedFloatTextWidget") w3 = calico.BoundedIntTextWidget(description="BoundedIntTextWidget") w4 = calico.ButtonWidget(description="ButtonWidget") w5 = calico.CameraWidget() # broken w6 = calico.CheckboxWidget("CheckboxWidget") w7 = calico.ContainerWidget(children=[calico.ButtonWidget()]) w8 = calico.DropdownWidget("DropDownWidget") w9 = calico.FloatProgressWidget(description="FloatProgressWidget") w10 = calico.FloatSliderWidget(description="FloatSliderWidget") w11 = calico.FloatTextWidget(description="FloatTextWidget") w12 = calico.HTMLWidget("<b>Hello World!</b>", "HTMLWidget") w13 = calico.ImageWidget(format="svg", _b64value="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") w14 = calico.IntProgressWidget(description="IntProgressWidget") w15 = calico.IntSliderWidget(description="IntSliderWidget") w16 = calico.IntTextWidget(description="IntTextWidget") w17 = calico.LatexWidget("$x = \\frac{1}{2}$", description="LatexWidget") w18 = calico.PasswordWidget(description="PasswordWidget") #broken w19 = calico.PopupWidget(description="PopupWidget", children=[calico.ButtonWidget()]) w20 = calico.RadioButtonsWidget(description="RadioButtonsWidget") w21 = calico.SelectWidget(description="SelectWidget") w22 = calico.TabWidget(children=[calico.ButtonWidget("B1"), calico.ButtonWidget("B2")]) w23 = calico.TextWidget(description="TextWidget") w24 = calico.TextareaWidget(description="TextareaWidget") w25 = calico.ToggleButtonWidget(description="ToggleButtonWidget") w26 = calico.ToggleButtonsWidget(description="ToggleButtonsWidget")
for i in range(1, 27): var = "w%s" % i calico.display(globals()[var])
Charts
In addition, there are Javascript-based widgets:
- GeoChart - https://google-developers.appspot.com/chart/interactive/docs/gallery/geochart#Configuration_Options
- LineChart - https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart#Configuration_Options
- ScatterChart - https://google-developers.appspot.com/chart/interactive/docs/gallery/scatterchart#Configuration_Options
Examples:
from Widgets import Lines lines = Lines(3) # three lines for label, line in [["Money", [1, 2, 3]], ["Power", [5, 6, 7]], ["Wealth", [2, 4, 5]]]: lines = Lines(lines, line, label) calico.LineChart(lines, {"width": 800, "height": 300, "chartArea": {"width": 300}}).display()