Personal tools
You are here: Home Weblog Archive 2007 July

Entries For: July 2007

2007-07-29

Marble

Filed Under:

Spent the weekend camping at Meri Daes RV Park in Marble, CO with a group from church. We did a little hiking and visited the marble quarry. It's a beautiful area. They say that Colorado is God's country, but he vacations in Marble.

2007-07-26

Diamond Elevator Cable?

If an elevator to space could be built to geosynchronous orbit, it would have very low operating costs. While carbon nanotubes are the holy grail of the high strength material for such an endeavor, they can't be produced in sufficient quantity and quality. However, industrial diamond fabrication has matured to the point that it could be a suitable substitue. While not as strong as carbon nanotubes, diamond is strong enough. Sam Dinkin looks at the economics of space elevators made from industrial diamond. His analysis makes it look attractive.

Hat tip to Glen Reynolds.

Send Off

Filed Under:

I got up at 04:00 this morning to see my brother and niece off on their return trip to Houston. We had a good visit and they got to see Rocky Mountain National Park and Mount Evans.

2007-07-25

760 and Counting

Filed Under:

Tesla has orders for 760 Roadsters. They're beyond my budget, or I'd be on the list too.

2007-07-21

Colorado Renaissance Festival

Filed Under:

We went to the Colorado Renaissance Festival with my brother and neice. It's grown a lot since we last saw it. Of the crafts on display, I found Badger Blades the most interesting.

2007-07-20

Apollo 11

Filed Under:

It's been 38 years since the Apollo 11 lunar landing. NASA has been largely spinning its wheels since then. Maybe it'll do better under the next president.

Vectrix in the U.S.

Filed Under:

The first Vectrix electric maxi-scooter has been delivered to a customer in the U.S. It's performance is similar to the gasoline powered maxi-scooters, though the range is less and initial cost is greater. I wonder how long it will take the fuel savings to pay back the cost difference?

2007-07-18

PyDSTool 0.85 is Out

PyDSTool verion 0.85, the Python dynamical systems and modeling package has been released. It may be found at http://sourceforge.net/projects/pydstool. There are lots of minor improvements and fixes in this version, but a powerful new feature is the support for user-defined functions for continuation using PyCont.

The developers have also added some tools for basic phase-plane analysis, calculation of phase response curves for oscillators, and support for some special math functions. See the release notes for more details, and the documentation at http://pydstool.sourceforge.net.

2007-07-14

Buell Interview

Filed Under:

Interesting Erik Buell interview at the Telegraph. Corporate leaders talk a lot about passion, but few show it the way that Erik does. He seems to be deeply committed both to his motorcycles and to his customers.

2007-07-12

PyTables 2.0 is Out

Filed Under:

PyTables is a library for managing hierarchical datasets and designed to efficiently cope with extremely large amounts of data with support for full 64-bit file addressing. PyTables runs on top of the HDF5 library and NumPy package for achieving maximum throughput and convenient use.

After more than one year of continuous development and about five months of alpha, beta and release candidates, we are very happy to announce that the PyTables 2.0 (final) is here. We are pretty confident that 2.0 is ready to be used in production scenarios, bringing higher performance, better portability (specially in 64-bit environments) and more stability than the 1.x series.

You can download a source package of the version 2.0 with generated PDF and HTML docs and binaries for Windows from http://www.pytables.org/download/stable/

For an on-line version of the manual, visit: http://www.pytables.org/docs/manual-2.0

In case you want to know more in detail what has changed in this version, have a look at RELEASE_NOTES.txt. Find the HTML version for this document at: http://www.pytables.org/moin/ReleaseNotes/Release_2.0

If you are a user of PyTables 1.x, probably it is worth for you to look at MIGRATING_TO_2.x.txt file where you will find directions on how to migrate your existing PyTables 1.x apps to the 2.0 version. You can find an HTML version of this document at http://www.pytables.org/moin/ReleaseNotes/Migrating_To_2.x

Keep reading for an overview of the most prominent improvements in PyTables 2.0 series.

New features of PyTables 2.0

  • A complete refactoring of many, many modules in PyTables. With this, the different parts of the code are much better integrated and code redundancy is kept under a minimum. A lot of new optimizations have been included as well, making working with it a smoother experience than ever before.

  • NumPy is finally at the core! That means that PyTables no longer needs numarray in order to operate, although it continues to be supported (as well as Numeric). This also means that you should be able to run PyTables in scenarios combining Python 2.5 and 64-bit platforms (these are a source of problems with numarray/Numeric because they don't support this combination as of this writing).

  • Most of the operations in PyTables have experimented noticeable speed-ups (sometimes up to 2x, like in regular Python table selections). This is a consequence of both using NumPy internally and a considerable effort in terms of refactorization and optimization of the new code.

  • Combined conditions are finally supported for in-kernel selections. So, now it is possible to perform complex selections like:

    result = [ row['var3'] for row in
               table.where('(var2 < 20) | (var1 == "sas")') ]
    

    or:

    complex_cond = '((%s <= col5) & (col2 <= %s)) ' \
                   '| (sqrt(col1 + 3.1*col2 + col3*col4) > 3)'
    result = [ row['var3'] for row in
               table.where(complex_cond % (inf, sup)) ]
    

    and run them at full C-speed (or perhaps more, due to the cache-tuned computing kernel of Numexpr, which has been integrated into PyTables).

  • Now, it is possible to get fields of the Row iterator by specifying their position, or even ranges of positions (extended slicing is supported). For example, you can do:

    result = [ row[4] for row in table    # fetch field #4
               if row[1] < 20 ]
    result = [ row[:] for row in table    # fetch all fields
               if row['var2'] < 20 ]
    result = [ row[1::2] for row in       # fetch odd fields
               table.iterrows(2, 3000, 3) ]
    

    in addition to the classical:

    result = [row['var3'] for row in table.where('var2 < 20')]
    
  • Row has received a new method called fetch_all_fields() in order to easily retrieve all the fields of a row in situations like:

    [row.fetch_all_fields() for row in table.where('column1 < 0.3')]
    

    The difference between row[:] and row.fetch_all_fields() is that the former will return all the fields as a tuple, while the latter will return the fields in a NumPy void type and should be faster. Choose whatever fits better to your needs.

  • Now, all data that is read from disk is converted, if necessary, to the native byteorder of the hosting machine (before, this only happened with Table objects). This should help to accelerate applications that have to do computations with data generated in platforms with a byteorder different than the user machine.

  • The modification of values in *Array objects (through __setitem__) now doesn't make a copy of the value in the case that the shape of the value passed is the same as the slice to be overwritten. This results in considerable memory savings when you are modifying disk objects with big array values.

  • All leaf constructors (except for Array) have received a new chunkshape argument that lets the user explicitly select the chunksizes for the underlying HDF5 datasets (only for advanced users).

  • All leaf constructors have received a new parameter called byteorder that lets the user specify the byteorder of their data on disk. This effectively allows to create datasets in other byteorders than the native platform.

  • Native HDF5 datasets with H5T_ARRAY datatypes are fully supported for reading now.

  • The test suites for the different packages are installed now, so you don't need a copy of the PyTables sources to run the tests. Besides, you can run the test suite from the Python console by using:

    >>> tables.tests()
    

Resources

Go to the PyTables web site for more details:

http://www.pytables.org

About the HDF5 library:

http://hdfgroup.org/HDF5/

About NumPy:

http://numpy.scipy.org/

To know more about the company behind the development of PyTables, see:

http://www.carabos.com/

Acknowledgments

Thanks to many users who provided feature improvements, patches, bug reports, support and suggestions. See the THANKS file in the distribution package for a (incomplete) list of contributors. Many thanks also to SourceForge who have helped to make and distribute this package! And last, but not least thanks a lot to the HDF5 and NumPy (and numarray!) makers. Without them PyTables simply would not exist.

2007-07-08

New Ulysses

Filed Under:

Buell announced the 2008 models today. No major changes for the Ulysses, but the engine and suspension refinements are enough for me to choose it over the 2007. I also like the new Thrust Blue color.

2007-07-07

Heinlein Centennial

Today is Robert Heinlein's 100th birthday. He's one of my favorite authors and had a significant influence on me. His books fostered my interest in science and engineering, space travel, and libertarianism.

There's centennial celebration in Kansas City, but it didn't work out for me. Too many other things going on.

2007-07-04

Independence Day

Happy 4th of July!

Marc Danziger has a nice piece on the meaning of Independence Day.

We went to the open house at the Loveland/Fort Collins Municipal Airport to see the war birds. They had a B-17, a B-24, and various other aircraft.

2007-07-02

Levers for the Mind

Filed Under:

Ora Lassila has posted a couple of talks that he's recently given. The semantic web is generally described as making web accessible data more easily processed by machines, but this is just a means. The real end goal to make the data more easily usable by humans. The machines just enable this. They're levers for the mind.


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: