Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Saturday, March 29, 2014

Cool Technology: IPython Notebooks

I may be very late to the party but I've recently discovered IPython notebooks.  IPython is an extremely useful Python shell environment that has been kicking around for 10+ years. Initially the number of advantages it offered over the built-in python shell was small.  But then again it started out as a couple of hundred line hack.  So back then it seemed like it wasn't worth the trouble to make sure it was install on all the machines you might hack Python on.

Fast forward to 2010 or so, IPython has reached a 1.0 milestone, and has evolved significantly to an extremely powerful platform.  However the aspect that I find the most useful is notebooks that display in a web browser.   It's supposed to be somewhat reminiscent of Mathematica which I've never used.

Notebooks contain blocks of executable Python code and their output.  The Python code can be edited and run/rerun right there from the browser.  But where it really gets interesting is that rich multimedia stuff, especially graphs can be displayed right there, in-line.  It's pretty enabling for scientific computing, enabling very short hacking and visualization cycles almost like a spreadsheet.

I really should write a lot more about this.  It's not just for Python, and it's not just for the web, it seems like it could be a big thing.  It should also make teaching and learning a lot easier.

Check out:
I really like this example, reading a .WAV file and showing side by side plots of amplitude and spectrum:


There are a few things that I think could use improvement.
  1. More Document Structure, Real Head 1, 2, 3 and Table of Contents.   I'm a big fan of Mediawiki's nice native built-in structure.  It really helps organize documents in my opinion.  It's also one of the biggest things lacking from Evernote (IMHO).
  2. Native Tabular output widgets.  There are some extensions but they aren't quite there yet.  This could make an awesome SQL Workbench, but it could really use ways of presenting and working with tables as output cells.
Enjoy.

Thursday, January 2, 2014

Rigol DS1052E/DS1102 and Linux, Python, usbtmc

[To Be Updated]
This is one of those intersections of electronics, open source, hacking, and programming that really gets my interest.

Here are some links with information on connecting the Rigol scope to Linux, and controlling it using Python via USB.  The scope implements the USB test and measurement class, usbtmc.

Wednesday, April 11, 2012

Learning to Program / Learning Python.

This post is a summary of some of the responses I've sent to people about learning to program computers as well as learning the Python programming language:

I've heard good things about the book, "Hello World! Computer Programming for Kids and Other Beginners", It's a first book on programming using Python. While it appears to be aimed at kids, I've heard some adults have found it to be a good gentle introduction as well.


See my other post about free on-line college level classes, for info on Computer Science 101.  This class is due to start April 23rd, 2012.  Hopefully it will be a good resource for people with no formal CS background.

The same professor, Nick Parlante, developed a class on Python for Google:
"Welcome to Google's Python Class -- this is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding."
There are a number of resources for programmers who know other languages to learn Python.  These include: