Revamped Plot Toolbar

June 29th, 2009

Last October I added a toolbar for Chaco plots. It was functional, but it wasn’t very pretty. I decided to rewrite it from scratch, with emphasis on improving the appearance and improving the auto-hide feature.

The new toolbar also employs a new feature to Enable: gradients! Gradient support is still a work in progress, but improving daily.

PlotToolbar example screenshot

Upcoming EPD Webinar: Parallel Processing with iPython

June 26th, 2009

We see our EPD Webinar sessions as a great venue for us to provide subscribers with personalized support. Is there a particular challenge you’ve encountered while using EPD? Do you feel like it would be helpful for us to walk you through a process? We encourage you to submit your questions ahead of time so that we can prepare materials and demos to meet your needs.

The webinar format enables us to respond to your questions (either by chat or VOIP, depending on your preference) and share our screen to provide examples and demonstrations.  We feel that this could become an invaluable channel of communication for EPD users, and are excited to see how it progresses.

July’s webinar will be held next Thursday at 1pm to accomodate Independence Day weekend. We plan to give an overview and demonstration of parallel processing with iPython, as we’ve seen the tremendous utility of this EPD feature overlooked in the past. Once again, however, if you have a special topic that you’d like to have addressed, feel free to write us an e-mail to tell us what content you’d like to have covered in Thursday’s session.

EPD Webinar: Thursday July 2, 2009
1pm CDT/6pm UTC.
Register at GoToMeeting.  A password to enter the webinar will be provided in your confirmation.

June 19 Public Webinar on Python for Scientific Computing

June 12th, 2009

I had such a blast at the last public webinar that we did to promote Python for Scientific Computing. I am really looking forward to the next webinar which is only a week away (June 19). We had 100 people attend the last one. I know that some who wanted to attend could not because of a mix-up on times, or a problem with the fact that GoToMeeting doesn’t support Linux (I’m not very happy about that, but I don’t see another option right now). I apologize for all those problems, but hope you will try to attend again.

There is a lot that we could cover in these webinars, and I’m anxious for your feedback about what you would like to see. My plan is to put a schedule together so the topics are listed through the end of December after this next webinar. Now is the chance to make your opinion known if you’d like to steer these webinars in a particular direction. Schedules are busy and varied, so I’d like to give plenty of notice so that more people can attend the webinar they are most interested in.

In this upcoming webinar we are going to provide an introduction and demo of Chaco (which we didn’t get to the last time). If there is time, I will also continue the Mayavi demonstration (particular the mlab interface) that we started last time, but I also wanted to showoff EPDLab to a wider audience. You can register for the webinar at https://www1.gotomeeting.com/register/303689873

In the EPD subscriber webinar on June 5th, we discussed EPDLab (an open-source interactive Python environment included as part of EPD). Because EPDLab is a free and open-source project that anyone can participate in, contribute code to, and use as they would like, I think it deserves some attention at this next public webinar. Not only does it provide an enhanced scientific computing environment, it also provides an introduction to the Enthought Tool Suite (a free and open-source collection of tools for building compelling scientific applications — it goes by the abbreviation ETS).

I hope you will excuse a brief aside to clarify ETS and its relationship to EPD. Because we do sell a binary distribution of Python tools called the Enthought Python Distribution (EPD — which also happens to contain ETS), there is sometimes some confusion regarding the license and availability of ETS. ETS is a large BSD-licensed open-source collection of tools with a public SVN repository that anyone can contribute to and participate in the development of. Enthought has released a lot of code in that library which has made it possible for us to write sophisticated, compelling, and attractive scientific computing applications for our customers. ETS contains multiple separate projects. The most important and developed of these projects are Mayavi, Chaco, Traits, TraitsUI, and Envisage. You can learn more about ETS at Enthought’s open source portal.

But, Enthought is a small company and the majority of our marketing effort right now is centered around getting the word out about EPD and our other products and services like training and custom software creation. We don’t have the man-power to advertise ETS very well at the same time, and it can be a little confusing that EPD the distribution does cost money for commercial use, but ETS is free and open-source. Fortunately, people like Gael Varoquaux and Prabhu Ramachandran lead the internet charge to spread the word about the great tools in ETS.

I’m looking forward to seeing many of you on-line again at 1:00pm (Central Daylight Time) on Friday, June 19th. Slides and a recording of the webinar will also be made available here after conclusion of the webinar.

First EPD Webinar

June 5th, 2009

I wanted to thank everybody who came to the first EPD Webinar which was held today at 1:00pm CDT in our offices at Austin. We had a few technical glitches which our team resolved quickly. I then spent about 30 minutes showing off new features of EPD such as EPDLab, indexed searching of docstrings with Whoosh, and the new curve_fit function from scipy.optimize. Dave Peterson then spent about 30 minutes showing the use of enpkg which is a command in EPD to allow update, upgrade, and rollback service for egg-packages. This tool should allow subscribers to EPD to keep up to date without having to download and install new installers every time a release is made.

A packaging tool like enpkg has been on the roadmap since the beginning, and it was encouraging to see it in action. There are still a few speed and “verbosity” issues that we are cleaning up, but it looks like a good start to what should be a very useful feature for EPD.

In the future, the EPD webinars will contain about 30-45 minutes of training material drawn from the 7-days of course material on scientific computing with Python that we teach regularly. If there are particular points you would like to see covered, please let us know at info@enthought.com. The current plan for the next EPD Webinar is to provide training on the statistical capabilities of SciPy.

All who attended had the chance to ask questions directly of the Enthought attendees. We look forward to answering more of your questions in the future. The next EPD webinar is scheduled for Friday, July 3 at 1:00pm CDT. If you are an EPD Subscriber at the Basic level, please register. We look forward to your attendance and questions. Feel free to send pre-webinar questions to info@enthought.com

The next public webinar for general scientific computing with Python is
Friday, June 19 at 1:00pm CDT. This webinar is open to all that would like to attend. Right now the plan is to show-off the open-source EPDLab and give an overview of all the tools that are brought together in EPD. You can sign up now for the event. I look forward to seeing many of you attend.

EPD: Aiming for x86_64 OS X builds

June 4th, 2009

We’ve recently made the decision to start applying resources to generating x86_64 OS X builds of EPD.  Because of limited resources, this means we’re officially dropping PPC support in EPD.  It also means that it may take us months to get things released for the x86_64 (also known as amd64) architecture.

As an example of some of the issues we’ll face, we’ll need to decide how to handle the GUI backend situation.  You see, the wxWidgets project hasn’t yet released 64-bit build support for OS X’s Cocoa framework, and the Carbon framework isn’t 64-bit, so we’re stuck either starting with a “server” / console build of EPD, shipping on an unreleased version of wxWidgets, delaying the release while we help finalize x86_64 Cocoa builds of wxWidgets and wxPython, or switching to a different backend like Qt.

While Qt and the PyQt (Python bindings for Qt) seems like a no-brainer technology-wise, the license situation is a hurdle for us to overcome.  We’ve tried hard, but haven’t always succeeded, to avoid GPL licensed projects in EPD in order to make it more palatable to commercial users, like even our own consulting projects.  And, yes, Qt itself recently came out with an LGPL license option that would suit EPD’s needs, but PyQt isn’t similarly licensed (yet).  So now we have to decide whether such a core capability (the only GUI backend of OS X x86_64) would be acceptable to be GPL licensed.

If any one has any thoughts or suggestions on how to resolve this issue, please don’t hesitate to let us know!

By the way, regarding the PPC situation, we have effectively already started to drop PPC support with the EPD Py25 v4.3.0 release.  We made a good faith effort to build in the PPC support but simply didn’t do significant testing of the results.  In the end, it turns out that at least one core module, SciPy, ended up with binaries that don’t fully support PPC.  Sorry, but we do not plan to issue fixes for this.

If you’re a PPC user, the last working version of EPD for PPC was EPD Py25 v4.2.30201.

The EPD repository has RSS feeds

June 1st, 2009

We’ve just updated the EPD product website with links to a new EPD repository RSS feed: http://www.enthought.com/products/epd-rss.xml.

This feed is updated every time we release an update / upgrade to a project included in EPD, and soon everytime we publish a new installer.  All entries into the feed specify the platform the update / upgrade was released for, the date and time of release, the name of the thing being updated / upgraded, and a short description of the project being updated.

We’ve added this feed to both the main EPD product page, and also the ‘Download’ page — they’re the same feed so no need to subscribe twice!  For those with browsers that recognize RSS declarations in the page/HTML headers, you’ll see the RSS feed icon in your browser’s URL field when visiting these pages.   For others, simply click on the explicit RSS link on the main page right under the big, red, “Download Now” button.

As an alternative to this all-platforms feed which is available to everyone, even those without an EPD subscription at all, current EPD subscribers with access to the repository can subscribe to a filtered RSS feed for their target platform(s).  These can be found within the  various platform-specific directories under the top-level ‘eggs’ directory.  Note that only those with ‘Basic’ subscriptions and above can access the repository.

Please don’t hesitate to send us suggestions on how we can continue to improve EPD!

Webinar recording available

May 26th, 2009

Enthought’s first public webinar was a success, despite a few technical glitches. The large attendance in spite of the short notice was gratifying. Travis was able to cover only a fraction of the material he had hoped to cover, so there is plenty of material for future sessions (such as Chaco and Mayavi).

The recording of the webinar is now available for download. While the native recording format of GoToWebinar is Windows Media Player, we have converted it to Matroska format, so we hope that folks on all platforms will be able to view it. Please let us know if you have problems getting or playing it.

The next public webinar will be Friday, June 19 at 1:00 CDT. Specific topics TBD.

Meanwhile, we are launching a second webinar series, exclusively for subscribers to the Enthought Python Distribution at the Basic support level or higher.  Those subscribers will receive an e-mail announcement shortly.

Python for Scientific Computing Webinar

May 20th, 2009

We are trying something new at Enthought. I’m going to host the first Enthought Webinar on Scientific Computing. This webinar is free for people interested in showing up. You should plan to come with a bit of patience as we may not have all the wrinkles worked out of the technology and what it means for having a discussion.

I want to spread the word about all the very cool tools that the Open Source community has produced for using Python in Science. The first webinar will be on Friday at 3:00pm CDT. You can attend via your computer by registering at the following link: Python for Scientific Computing Webinar. I will be talking about NumPy, structured data-types, and memory mapped arrays (and how to use them for reading data quickly from files). I will also be showing off Chaco for 2-d interactive visualization and Mayavi for 3-d visualization. Come with questions as you will have the opportunity to ask them if you would like.

We will start 15 minutes early for people who want to get help setting up with the Webinar technology from GotoMeeting. If you have never attended a Webinar before, you may want to come and try it out. I look forward to seeing many of you online this Friday.

Enthought and Economic Science

May 12th, 2009

A few of us at Enthought (Peter Wang, Robert Kern, and I) traveled to Toronto two weeks ago to attend a very interesting summit of scientists and others connected to finance and economics to discuss whether and how science can provide assistance in understanding economics sufficiently to prevent or at least mitigate economic breakdowns such as the one we’ve just experienced (and are still dealing with). The conference was titled The Economic Crisis and its Implications for the Science of Economics. Some background material for the conference can be read at Edge.org, and at least two blog-posts covering the conference can be read: one by Stephen Hsu and another by Barkley Rosser.

We were invited because Eric Weinstein is a fan of Python and the tools in the Enthought Python Distribution (including NumPy, SciPy, SymPy, MayaVI, and Chaco). Robert Kern produced some very nice visualizations for Eric’s talks in the conference using MayaVi and Chaco which can be seen in Eric Weinstein’s two talks: 30 minutes into the first one and 45 minutes and again 1:30 minutes into the second one (Actually, the second talk was Pia Malaney’s talk and Eric enthusiastically joined her half-way through — I guess being married has its advantages for getting more air time.)

The conference was intellectually stimulating and very enjoyable. I enjoyed all of the conversations I personally had with the participants which ranged from probability theory to cognitive neuroscience to quantum mechanics to computer platforms for agent-based modeling. I encourage you to read and listen in more depth to what the participants had to say in their talks because I won’t be able to provide sufficient summary to the conference. All of the conference talks are online. What isn’t shown in the videos, though, are the break-out discussions that took place between sessions and at meal-time.

In these break-out discussions I enjoyed getting to know all four members of the PartEcon team. Apparently, Mike Brown organized this group after an agent-based model (discussed at the conference by Alexander (Sasha) Outkin) predicted some useful results of changing the tick-size to decimals on the NASDAQ. They have incorporated principles of double-entry book-keeping into their agent-based model. They also stayed after the conference to continue comparing notes with another team from the Perimeter Institute that had written about an agent-based model using a more formal setup (by Samuel Vazquez and Simone Severini).

While there was one early talk on the first day by Richard Alexander that touched on the genetic component of human agents, the impact of having evolutionary biologists present (like him and one of his students, Bret Weinstein) was much larger than their presentation footprint. They provided insightful discussions during several break-out sessions (Peter Wang even commented that in another life he might have become a biologist).

Lee Smolin sent around a very nice summary of the conference and suggested a unifying theme of “path-dependence in economic dynamics.” Eric and Lee were both there to explain how gauge theory provides the tools to solve the problem of changing preferences that has plagued traditional academic economics. Eric did a great job of showing how this manifestly untrue concept of unchanging preferences has at least been put forward by several leading economists. It’s still unclear to me whether or not gauge theory actually provides new results, but it definitely seems like a more useful mathematical toolbox to use and build from.

I was disappointed that amidst all the discussion of the failure of economic modeling there was not at least some discussion about the Mises-Rothbardian ideas of fiat currency and fractional-reserve banking being the primary source of the booms and resulting busts. I wanted to learn from the people there rather than try and debate this one particular theory of economics so I pretty much stayed quiet. One gentleman sitting next to me during the first day asked the panel whether the crises shows the failure of fiat currency and and got a very unsatisfying answer from Nouriel Roubini that simply dismissed the question, but did not really address it.

Given that the economic experts have basically shown repeatedly they don’t know what they are doing, intellectual honesty would seem to me to require listening to all sides of a debate, instead of dismissing a whole theory of economics (such as the Austrian school) primarily because it doesn’t use math as its starting point. Fortunately, there are very good texts that argue against fractional-reserve banking and the role it may actually play in causing economic instability. One of them is “Money, Bank Credit, and Economic Cycles” by Jesus Huerta de Soto.

I really enjoyed the conference because it seemed to combine all of the interests I’ve developed over the years: math, probability theory, neuroscience, economics, and computers. I’ve had a hobbyist interest in Economics ever since graduate school at the Mayo Clinic when I was learning about Linux and Python. I fell in love with open source software but wanted to understand how “giving software away” could work sustainably in a society. It was this question that led to me finally reading Mises and Rothbard and a whole host of other non main-stream economists. I can’t say I’ve figured anything out, but I have very much enjoyed the ride.

I’m also very hopeful in some of the ideas I saw at the conference that may help us inch closer to an understanding of the truth of an economic system (mathematically modeling changing preferences, using agent-based models, and even the idea of local currencies that was discussed among some at the conference).

In the more immediate future. It looks like there is some discussion afoot for building a platform for agent-based modeling that I hope Python plays prominently in. There is a real power in using an expressive and dynamic language like Python that allows for rapid development. It is a general-purpose language that scientists and engineers can actually get excited about. In addition, the work of Paul Borrill’s company (Replicus) in creating an agent-based storage solution looks immediately promising. Perhaps Enthought can provide some tools to assist in managing such a system. I’m enthused and anxious to continue to support the improvement of using computers to help solve some of the world’s most challenging problems. There is much more that could be said, but I’m sure this blog (with no photos) is long enough.

EPD 4.2.30201 released

April 30th, 2009

I am pleased to announce that EPD (Enthought Python Distribution) version
4.2.30201 has been released.  You may find more information about EPD, as
well as download a 30 day free trial here:

http://www.enthought.com/products/epd.php

You can check out the release notes here:

https://svn.enthought.com/epd/wiki/Py25/4.2.30201/RelNotes

The Enthought Python Distribution (EPD) is a “kitchen-sink-included”
distribution of the Python Programming Language, including over 80
additional tools and libraries. The EPD bundle includes NumPy, SciPy,
IPython, 2D and 3D visualization, database adapters, and a lot of
other tools right out of the box.

http://www.enthought.com/products/epdlibraries.php

It is currently available as a single-click installer for Windows XP (x86),
Mac OS X (a universal binary for OS X 10.4 and above),
RedHat 3, 4 and 5 (x86 and amd64), as well as Solaris 10 (x86).

EPD is free for academic use.  An annual subscription including installation
support is available for individual and commercial use.  Additional
support options, including customization, bug fixes and training classes
are also available:

http://www.enthought.com/products/support_level_table.php

- Ilan