<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10316268</id><updated>2008-08-11T03:15:28.072-05:00</updated><title type='text'>My Ro-bot Life</title><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='/mrl/feed/atom.xml'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>253</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10316268.post-7739502594366008933</id><published>2008-08-02T13:27:00.004-05:00</published><updated>2008-08-02T13:45:10.265-05:00</updated><title type='text'>Script</title><content type='html'>&lt;div style="font-family:courier new,courier,monospace;"&gt;Mom LOUISE, late 30s, and daughter EMMA, pre-teen, sit a kitchen table. Offscreen, a TV is playing MCCAIN's "Celebrity" ad. We hear the announcer intone "The biggest celebrity in the world."&lt;br/&gt;&lt;br/&gt;

Dad HARRY, late 30s, enters from left, holding three plates of spaghetti. As he puts the plates down and takes his seat, LOUISE picks up the remote and turns off the TV.&lt;br/&gt;&lt;br/&gt;

&lt;div style="text-align: center;"&gt;
HARRY&lt;br/&gt;
What was that?&lt;br/&gt;&lt;br/&gt;

LOUISE&lt;br/&gt;
Another McCain attack ad.&lt;br/&gt;&lt;br/&gt;

HARRY&lt;br/&gt;
Why is John McCain attacking Britney Spears?&lt;br/&gt;&lt;br/&gt;

LOUISE&lt;br/&gt;
I know! I want to hear about the issues -- health care ...&lt;br/&gt;&lt;br/&gt;

HARRY&lt;br/&gt;
Gas prices ...&lt;br/&gt;&lt;br/&gt;

LOUISE&lt;br/&gt;
From McCain, &lt;i&gt;and&lt;/i&gt; from Barack Obama. I don't want to hear about Britney Spears and Paris Hilton!&lt;br/&gt;&lt;br/&gt;

EMMA&lt;br/&gt;
Well you know, Mom, I happen to have Barack Obama right here. Maybe he can answer your questions.&lt;br/&gt;&lt;br/&gt;
&lt;/div&gt;

HARRY and LOUISE look at her like she's gone nuts. BARACK OBAMA enters from right. He smiles and greets HARRY and LOUISE warmly, shaking their hands.&lt;br/&gt;&lt;br/&gt;

&lt;div style="text-align: center;"&gt;
BARACK OBAMA&lt;br/&gt;
&lt;i&gt;(Indicates the free chair)&lt;/i&gt; May I? &lt;i&gt;(Pulls chair out and sits)&lt;/i&gt; So Louise, you're worried about health care?&lt;br/&gt;&lt;br/&gt;

LOUISE&lt;br/&gt;
&lt;i&gt;(Overcoming her surprise)&lt;/i&gt;&lt;br/&gt;
Uh... Well, yeah. My brother lost his job last year, and now his family has no insurance. What are you going to do to help them, and to keep the same thing from happening to us if we lose our jobs?&lt;br/&gt;&lt;br/&gt;

BARACK OBAMA&lt;br/&gt;
I've heard stories just like that from so many people, all over the country. You know over forty million Americans are without health insurance. That's why under my health care plan, every family will be able to get the same insurance that I get as a Senator, at a really good rate -- and if you can't afford it, we'll help you with a subsidy.&lt;br/&gt;&lt;br/&gt;

HARRY&lt;br/&gt;
What about gas prices? Four bucks a gallon, it's killing me --&lt;br/&gt;&lt;br/&gt;

BARACK OBAMA&lt;br/&gt;
This is a real tough one. There's only so much we can do in the short term. Longer term, my energy plan uses conservation and alternative energy to bring prices down and help the environment. But I understand that millions of Americans are hurting now, and we can't wait ten years for fuel-cell cars or offshore drilling to solve our problems. That's why I'm proposing a $1000 tax rebate for every family right now, to offset higher gas and heating prices.&lt;br/&gt;&lt;br/&gt;

HARRY&lt;br/&gt;
Wow, a thousand bucks, that could go a long way.&lt;br/&gt;&lt;br/&gt;

BARACK OBAMA&lt;br/&gt;
That's the idea. Helping folks like you is why I'm running for President, and it's why I approve this message.&lt;br/&gt;&lt;br/&gt;

HARRY&lt;br/&gt;
What message? &lt;i&gt;(To LOUISE)&lt;/i&gt; Who's he talking to?&lt;br/&gt;&lt;br/&gt;
&lt;/div&gt;

LOUISE, EMMA and BARACK OBAMA laugh. FADE OUT to BLUE SCREEN showing &lt;a href="http://www.barackobama.com/"&gt;http://www.barackobama.com/&lt;/a&gt; as they continue to laugh and banter.&lt;/span&gt;
&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2008/08/script.html' title='Script'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=7739502594366008933' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7739502594366008933'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7739502594366008933'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-851500141694406300</id><published>2008-07-01T17:19:00.002-05:00</published><updated>2008-07-01T17:34:58.067-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='2008'/><title type='text'>John McCain's lack of judgement</title><content type='html'>&lt;p&gt;&lt;a href="http://www.thefreedictionary.com/judgement"&gt;Judgement&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;b&gt;5. judgement -&lt;/b&gt; the capacity to assess situations or circumstances shrewdly and to draw sound conclusions[...]&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.phillyburbs.com/pb-dyn/news/113-07012008-1556942.html"&gt;McCain&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;While McCain acknowledged that there was "a massive, colossal intelligence failure" that led up to the invasion of Iraq, he said that other countries had gathered the same, false intelligence about weapons of mass destruction in Iraq. He said that &lt;span style="font-weight: bold;"&gt;even with that faulty intelligence he felt the war was justified&lt;/span&gt; since Saddam Hussein had twice used weapons of mass destruction, broken international sanctions and was &lt;span style="font-weight: bold;"&gt;"a threat" to the United States&lt;/span&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;(via &lt;a href="http://www.dailykos.com/storyonly/2008/7/1/144348/7117/234/544888"&gt;Daily Kos&lt;/a&gt;, emphasis mine)&lt;/p&gt;&lt;p&gt;Apparently, they've never met.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2008/07/john-mccains-lack-of-judgement.html' title='John McCain&apos;s lack of judgement'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=851500141694406300' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/851500141694406300'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/851500141694406300'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-7620408580829548190</id><published>2008-06-04T13:37:00.002-05:00</published><updated>2008-06-04T13:39:43.474-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nose'/><title type='text'>nose 0.10.3 released</title><content type='html'>nose version 0.10.3 fixes a serious bug found in 0.10.2's nosetests setuptools command, and updates the coverage plugin to be more friendly to other plugins that trigger imports in begin(). Thanks to Philip Jenvey and Ned Batchelder for reporting these issues.

As usual, more information can be found on the &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/"&gt;nose project page&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2008/06/nose-0103-release.html' title='nose 0.10.3 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=7620408580829548190' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7620408580829548190'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7620408580829548190'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-2785120086949902567</id><published>2008-05-12T15:34:00.002-05:00</published><updated>2008-05-12T15:38:24.063-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nose'/><title type='text'>nose 0.10.2 released</title><content type='html'>&lt;p&gt;I'm pleased to announce the release of nose 0.10.2. This release features tons of bugfixes and patches, mostly contributed by users, as well as improvements to custom exception reporting, and official support for jython (svn trunk only, for now).&lt;/p&gt;&lt;p&gt;As usual, more information may be found on the &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/"&gt;nose project page&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Many thanks to everyone who contributed to this release. I expect it to be the last in the 0.10 series. 0.11 will bring some new builtin plugins, and begin to set the stage for big changes to reporting.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2008/05/nose-0102-released.html' title='nose 0.10.2 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=2785120086949902567' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/2785120086949902567'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/2785120086949902567'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-7572423111476265568</id><published>2008-01-07T21:27:00.000-06:00</published><updated>2008-01-07T21:29:17.405-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nose python'/><title type='text'>nose 0.10.1 released</title><content type='html'>&lt;p&gt;nose 0.10.1 has been released. This release is just about all bugfixes. As usual, the changelog can be found &lt;a href="/mrl/projects/nose/#changelog"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2008/01/nose-0101-released.html' title='nose 0.10.1 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=7572423111476265568' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7572423111476265568'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7572423111476265568'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-224830648010577349</id><published>2007-10-10T09:52:00.000-05:00</published><updated>2007-10-10T09:56:39.234-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nose python'/><title type='text'>nose 0.10.0 final!</title><content type='html'>&lt;p&gt;0.10 is finally final!&lt;/p&gt;&lt;p&gt;The new release of nose, 0.10, marks a major change from the 0.9 series in philosophy and implementation.&lt;/p&gt;&lt;p&gt;Prior to this release, nose was entirely discovery-centric: it would never run anything that it didn't discover as a test. The test loader in 0.10 has been completely rewritten so that it still supports discovery, but also allows directed test loading. In other words, starting with 0.10, if you tell nose that something is a test, nose will believe you.&lt;/p&gt;&lt;p&gt;0.10 also includes major changes to the plugin API introduced in 0.9. For the most part these are additive and backwards-compatible. Plugins now have many new hooks available at all phases of test loading, running and description. Many features of nose 0.9 that could only be implemented in the core of nose are now plugins: output capture, assert introspection, support for skipped and deprecated tests and for dropping into pdb on error or failures. All of the hooks those plugins use are available for your plugins too, of course. See the &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/doc/plugin_interface.html"&gt;plugin interface reference&lt;/a&gt; or &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/doc/writing_plugins.html"&gt;guide to writing plugins&lt;/a&gt; for more.&lt;/p&gt;&lt;p&gt;There are many other, less user-visible changes under the hood. See  &lt;a href="http://code.google.com/p/python-nose/wiki/VersionZeroTen"&gt;VersionZeroTen&lt;/a&gt; for an outline.&lt;/p&gt;&lt;p&gt;This release would have been near-impossible to complete without the help of John J Lee and new members of the nose development team Kumar McMillan, Grig Gheorgiu, James Casbon, and Titus Brown. Many thanks to all of them.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2007/10/nose-0100-final.html' title='nose 0.10.0 final!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=224830648010577349' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/224830648010577349'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/224830648010577349'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-2873494135475833775</id><published>2007-07-07T13:57:00.000-05:00</published><updated>2007-07-07T14:01:06.230-05:00</updated><title type='text'>Nose 0.10.a1</title><content type='html'>&lt;p&gt;Nose has reached double digits. Woo!&lt;/p&gt;&lt;p&gt;The development release of nose, 0.10a, marks a major change from the 0.9 series in philosophy and implementation.&lt;/p&gt;&lt;p&gt;Prior to this release, nose was entirely discovery-centric: it would never run anything that it didn't discover as a test. The test loader in 0.10 has been completely rewritten so that it still supports discovery, but also allows directed test loading. In other words, starting with 0.10, if you tell nose that something is a test, nose will believe you.&lt;/p&gt;&lt;p&gt;0.10 also includes major changes to the plugin API introduced in 0.9. For the most part these are additive and backwards-compatible. Plugins now have many new hooks available at all phases of test loading, running and description. Many features of nose 0.9 that could only be implemented in the core of nose are now plugins: output capture, assert introspection, support for skipped and deprecated tests and for dropping into pdb on error or failures. All of the hooks those plugins use are available for your plugins too, of course. See the &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/doc/plugin_interface.html"&gt;plugin interface reference&lt;/a&gt; or &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/doc/writing_plugins.html"&gt;guide to writing plugins&lt;/a&gt; for more.&lt;/p&gt;&lt;p&gt;There are many other, less user-visible changes under the hood. See &lt;a href="http://code.google.com/p/python-nose/wiki/VersionZeroTen"&gt;VersionZeroTen&lt;/a&gt; on the Wiki for for an outline.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2007/07/nose-010a1.html' title='Nose 0.10.a1'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=2873494135475833775' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/2873494135475833775'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/2873494135475833775'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-9102053280368175996</id><published>2007-04-21T17:45:00.000-05:00</published><updated>2007-04-21T17:47:30.709-05:00</updated><title type='text'>nose 0.9.3 released</title><content type='html'>&lt;p&gt;I'm happy to announce the release of nose 0.9.3.&lt;/p&gt;&lt;p&gt;nose 0.9.3 is mainly a bugfix release. The one new feature is support for user configuration files: now you can put your frequently used configuration options in .noserc or nose.cfg files, rather than typing them over and over and over again. Many thanks to Antoine Pitrou for that patch, and thanks to all of the other users who reported bugs and submitted patches and suggestions.&lt;/p&gt;&lt;p&gt;Barring catastrophic bugs, this will be the last release of nose in the 0.9 series. An alpha release of nose 0.10 should be forthcoming within a few weeks. Details about the new features and architecture changes in nose 0.10 may be found on the &lt;a href="http://code.google.com/p/python-nose/wiki/VersionZeroTen"&gt;VersionZeroTen&lt;/a&gt; wiki page.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2007/04/nose-093-released.html' title='nose 0.9.3 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=9102053280368175996' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/9102053280368175996'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/9102053280368175996'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-3161312664209983763</id><published>2007-01-31T21:50:00.000-06:00</published><updated>2007-01-31T21:53:27.467-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nose'/><title type='text'>nose 0.9.2 released</title><content type='html'>&lt;p&gt;Nose 0.9.2 includes quite a few bug fixes and new features. The most significant are the new nosetests setuptools command, contributed by James Casbon, better support for python 2.2 thanks to a patch from Chad Whitacre, and some useful utilities for testing Twisted programs and writing decorators contributed by Antoine Pitrou. Thanks to them all, and the many other folks who contributed patches and filed bug reports and feature requests.&lt;/p&gt;&lt;p&gt;Nose's project home has moved from python hosting to Google code. Please update your svn checkouts and bookmarks. To check out the current trunk: &lt;br/&gt;&lt;br/&gt;&lt;code&gt;svn co http://python-nose.googlecode.com/svn/trunk&lt;/code&gt;&lt;/p&gt;&lt;p&gt;To file issues, go to the &lt;a href="http://code.google.com/p/python-nose/issues/list"&gt;new issues page&lt;/a&gt;. To read up on features, writing plugins, and other topics, visit the &lt;a href="http://code.google.com/p/python-nose/w/list"&gt;new wiki&lt;/a&gt;.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2007/01/nose-092-released.html' title='nose 0.9.2 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=3161312664209983763' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/3161312664209983763'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/3161312664209983763'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-6814427430887994768</id><published>2007-01-17T09:07:00.000-06:00</published><updated>2007-01-17T09:08:26.596-06:00</updated><title type='text'>Ice</title><content type='html'>&lt;div class='tabblo'&gt;
&lt;div&gt;&lt;a href='http://www.tabblo.com/studio/stories/shared/12444/2o49hevsu3fzjw1'&gt;
&lt;img src="http://www.tabblo.com/studio/image/public/94276/ab897c9c25ff2f05811e680ac6f7c8f2.jpg" alt='Tabblo: Ice' height='415' width='415' border='0'/&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href='http://www.tabblo.com/studio/stories/shared/12444/2o49hevsu3fzjw1'&gt;See my Tabblo&amp;gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2007/01/ice.html' title='Ice'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=6814427430887994768' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/6814427430887994768'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/6814427430887994768'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-7837172486645640933</id><published>2006-12-19T13:29:00.000-06:00</published><updated>2006-12-19T13:45:54.049-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='nose'/><category scheme='http://www.blogger.com/atom/ns#' term='housekeeping'/><title type='text'>nose has moved</title><content type='html'>&lt;p&gt;nose has moved to google code. The new place to check out the development version and file bugs or feature requests is &lt;a href="http://code.google.com/p/python-nose/"&gt;http://code.google.com/p/python-nose/.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The move was forced by a combination of unfortunate circumstances. First, python hosting has been hit with a wave of trac spam in their free trac/svn service. Second, they decided to handle this wave of spam by shutting down all of the projects that they didn't think were active. They gave no notice nor offered any explanation: the projects were simply 404'd. After waiting half a day for the apparent outage to be solved, and then reading &lt;a href="http://www.webfaction.com/freetrac"&gt;here&lt;/a&gt; that they would no longer be accepting new projects until they had cleaned up their server, which could take "weeks or months," I decided that, whether or not I could regain access to nose.python-hosting.com, I would be foolish to continue using a service that might disappear and take my work with it at any time.&lt;/p&gt;&lt;p&gt;The folks at python hosting, once I was able to get an email reply from them, have been very accommodating and kindly turned the project back on so that I could pull down my tickets. I'm grateful to python hosting for hosting nose for over a year, and for the great service that they have provided to the whole python community by offering free hosting to open source projects. I hope this is just a hiccup, and that their service will be operational again soon. I only wish that they had chosen to handle their spam problem in a more open and professional manner. Given how they did handle it, though, I feel that I have no choice but to take my projects elsewhere.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/12/nose-has-moved.html' title='nose has moved'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=7837172486645640933' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7837172486645640933'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/7837172486645640933'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-1418143061436161230</id><published>2006-12-14T13:20:00.000-06:00</published><updated>2006-12-14T13:21:08.890-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='housekeeping'/><title type='text'>Blogger beta</title><content type='html'>Made the switch. Categories!</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/12/blogger-beta.html' title='Blogger beta'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=1418143061436161230' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/1418143061436161230'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/1418143061436161230'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-116578999734020266</id><published>2006-12-10T11:33:00.000-06:00</published><updated>2006-12-10T16:33:17.406-06:00</updated><title type='text'>more bread</title><content type='html'>&lt;div class='tabblo'&gt;&lt;div&gt;&lt;a href='http://www.tabblo.com/studio/stories/shared/10628/8lzpkhu7ovr0xjq'&gt;&lt;img src='http://www.tabblo.com/studio/image/public/71709/d31c54f0bc4c4a83a27b884194492f5b.jpg' alt='Tabblo: more bread' height='415' width='415' border='0'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href='http://www.tabblo.com/studio/stories/view/160980/'&gt;Start here...&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;3 cups bread flour&lt;br/&gt;.5 cup currants&lt;br/&gt;1 tbsp honey&lt;br/&gt;2 tsp cinnamon&lt;br/&gt;&lt;br/&gt;Sprinkle the cinnamon over the dough before each fold when you are folding it over two or three times before shaping it into a ball for the 2nd rise.&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight:bold'&gt;Currant bread&lt;/span&gt;&lt;br/&gt; ... &lt;a href='http://www.tabblo.com/studio/stories/shared/10628/8lzpkhu7ovr0xjq'&gt;See my Tabblo&amp;gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/12/more-bread.html' title='more bread'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=116578999734020266' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116578999734020266'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116578999734020266'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-116563820646203783</id><published>2006-12-08T17:23:00.000-06:00</published><updated>2006-12-08T22:23:26.600-06:00</updated><title type='text'>bread</title><content type='html'>&lt;div class='tabblo'&gt;&lt;div&gt;&lt;a href='http://www.tabblo.com/studio/stories/shared/10536/053tegduynm1lsz'&gt;&lt;img src='http://www.tabblo.com/studio/image/public/69616/d5e4f6f20a32e71d4309c201493ba746.jpg' alt='Tabblo: bread' height='415' width='415' border='0'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;font style='font-weight:bold' size='5'&gt;A variation of Jim Lahey's innovative bread recipe from the NY Times.&lt;/font&gt; ... &lt;a href='http://www.tabblo.com/studio/stories/shared/10536/053tegduynm1lsz'&gt;See my Tabblo&amp;gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/12/bread.html' title='bread'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=116563820646203783' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116563820646203783'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116563820646203783'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-116475031918906261</id><published>2006-11-28T10:45:00.000-06:00</published><updated>2006-11-28T15:45:19.243-06:00</updated><title type='text'>Pete in Pictures</title><content type='html'>&lt;div class='tabblo'&gt;&lt;div&gt;&lt;a href='http://www.tabblo.com/studio/stories/shared/9803/zqey31675uncjdk'&gt;&lt;img src='http://www.tabblo.com/studio/image/public/51086/96bc79c3e3183a38c3631cb5c10aced5.jpg' alt='Tabblo: Pete in Pictures' height='195' width='415' border='0'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;div style='text-align:center'&gt;The many moods of Pete. Sleepy. Crazy. Not pictured: hungry.&lt;/div&gt; ... &lt;a href='http://www.tabblo.com/studio/stories/shared/9803/zqey31675uncjdk'&gt;See my Tabblo&amp;gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/11/pete-in-pictures.html' title='Pete in Pictures'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=116475031918906261' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116475031918906261'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116475031918906261'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-116290417307122624</id><published>2006-11-07T06:48:00.000-06:00</published><updated>2006-11-07T06:56:13.323-06:00</updated><title type='text'>Nose 0.9.1 released</title><content type='html'>&lt;p&gt;This entry is somewhat belated. Nose 0.9.1 was released a few days ago, but the vagaries of life are such that I am only getting around to announcing the release now.&lt;/p&gt;

&lt;p&gt;Nose 0.9.1 is mainly a bug-fix release, but it does contain a few new
features.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;The --where (-w), --include and --exclude arguments may now all appear
  multiple times in a single command line, allowing easier running of
  multiple test suites and test suites with more diverse layouts.&lt;/li&gt;
&lt;li&gt;For programmatic use, nose.runmodule() was added. Similar to
  doctest.runmodule() and unittest.main(), nose.runmodule() will load and run
  tests in the current module, which defaults to __main__.&lt;/li&gt;
&lt;li&gt; A number of changes to plugins and plugin hooks make current plugins work
  better and allow more interesting plugins to be written.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just about everything in this release was driven by requests from
users. Thanks to the many folks who filed bug reports and suggested features,
ideas and solutions to thorny problems.&lt;/p&gt;

&lt;p&gt;More information and installation instructions are available on the &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/"&gt;nose homepage&lt;/a&gt;&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/11/nose-091-released.html' title='Nose 0.9.1 released'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=116290417307122624' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116290417307122624'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116290417307122624'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-116033987843043242</id><published>2006-10-08T15:31:00.000-05:00</published><updated>2006-10-08T15:37:58.520-05:00</updated><title type='text'>April 1993 - October 7, 2006</title><content type='html'>&lt;a href="http://www.flickr.com/photos/82642776@N00/264202472/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/84/264202472_075011f188_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/82642776@N00/264202472/"&gt;Old friend&lt;/a&gt; &lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/82642776@N00/"&gt;Jason Pellerin&lt;/a&gt;.&lt;/span&gt;&lt;br clear="all" /&gt;&lt;p&gt;I'm very sorry to say that our beloved old friend Bismarck passed away yesterday. He shared the happiest and best years of our lives, and made each day of them happier and better. &lt;br /&gt;&lt;br /&gt;Goodbye, sweetheart. Rest easy.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/10/april-1993-october-7-2006.html' title='April 1993 - October 7, 2006'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=116033987843043242' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116033987843043242'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/116033987843043242'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-115608599742047005</id><published>2006-08-20T09:59:00.000-05:00</published><updated>2006-08-20T10:08:54.663-05:00</updated><title type='text'></title><content type='html'> Writely?&lt;br&gt; &lt;br&gt; This post was written using &lt;a href="http://www.writely.com/" title="Writely"&gt;Writely&lt;/a&gt;, the online collaborative word processor that Google bought a while back and has just but into beta. I'm wondering whether it is a good platform for authoring blog posts. It has a menu command to save a document as a blog post, which seems promising. But what about the formatting?&lt;br&gt; &lt;br&gt; Can it handle:&lt;br&gt; &lt;ul&gt;   &lt;li&gt;     A list&lt;/li&gt;   &lt;li&gt;     Of bulleted&lt;/li&gt;   &lt;li&gt;     Items?&lt;/li&gt; &lt;/ul&gt; &lt;br&gt; How about a code block?&lt;br&gt; &lt;br&gt; &lt;pre style=""&gt;  class BoundStatement(object):&lt;br&gt;      """Represents an SQL statement that is to be executed, at&lt;br&gt;  some point in&lt;br&gt;  the future, using a specific database connection.&lt;br&gt;  """&lt;br&gt;  def __init__(self, sql, connection):&lt;br&gt;      self.sql = sql&lt;br&gt;      self.connection = connection&lt;br&gt; &lt;/pre&gt;  Well, that's decent, but there's no 'code' style and no ability so far as I can see to add a new style. Well, that's about it for now. Let's try posting this sucker.&lt;br&gt; &lt;br&gt; Update: The code block didn't format anything like correctly, and the html generated for it is full of &amp;nbsp; entities, making it difficult to even edit by hand. Plus, 'find and replace' doesn't work in html hand edit mode! At least it lets you easily edit and repost your document, which is pretty nice.&lt;br&gt;  </content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/08/writelythis-post-was-written-using.html' title=''/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=115608599742047005' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/115608599742047005'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/115608599742047005'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-115171988206760103</id><published>2006-06-30T21:05:00.000-05:00</published><updated>2006-06-30T21:13:22.766-05:00</updated><title type='text'>Nose 0.9 final!</title><content type='html'>&lt;h4&gt;Nose 0.9 final has been released!&lt;/h4&gt;&lt;p&gt;nose 0.9 includes a host of new features, as well as numerous backwards-incompatible changes to interfaces and implementation.&lt;/p&gt;&lt;p&gt;Thanks to the many folks who have contributed patches and ideas and made bug reports for the development version of 0.9, especially Mika Eloranta, Jay Parlar, Kevin Dangoor, Scot Doyle, Titus Brown and Philip J.Eby.&lt;/p&gt;&lt;p&gt;Here's a quick rundown of what's new in 0.9&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Plugins&lt;/b&gt;&lt;br /&gt;The most important new feature is support for plugins using setuptools entrypoints. nose plugins can select and load tests (like the builtin doctest plugin), reject tests (like the builtin attrib plugin, contributed by Mika Eloranta, that allows users to select tests by attribute), watch and report on tests (like the builtin coverage and profiler plugins), completely replace test result output (like the html result plugin in the examples directory) or any combination of the above. Writing plugins is simple: subclass nose.plugins.Plugin and implement any of the methods in nose.plugins.IPluginInterface.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Better compatibility with unittest&lt;/b&gt;&lt;br /&gt; Test loading has been consolidated into a test loader class that is drop-in compatible with unittest.TestLoader. Likewise test result output, including output capture, assert introspection, and support for skipped and deprecated tests, in nose.result.TextTestResult. If you want those features and not the rest of nose, you can use just those classes. nose.main() has also been rewritten to have the same signature as unittest.main().&lt;/li&gt;&lt;li&gt;&lt;b&gt;Better command line interface&lt;/b&gt;&lt;br /&gt;Command line test selection is more intuitive and powerful, enabling easy and correct running of single tests while ensuring that fixtures (setup and teardown) are correctly executed at all levels. No more -f -m or -o options: now simply specify the tests to run:&lt;br /&gt;
  &lt;code&gt;
    nosetests this/file.py that.module
  &lt;/code&gt;&lt;br /&gt;
Tests may be specified down to the callable:&lt;br /&gt;
  &lt;code&gt;
    nosetests this/file.py:TestClass that.module:this_test
  &lt;/code&gt;&lt;br /&gt;
  &lt;code&gt;
    nosetests that.module:TestClass.test_method
  &lt;/code&gt;
&lt;br /&gt;
  There are also new options for dropping into pdb on errors or failures, and stopping the test run on the first error or failure (thanks to Kevin Dangoor for the idea).&lt;/li&gt;&lt;li&gt;&lt;b&gt;More!&lt;/b&gt;&lt;br /&gt;Helpful test decorators and functions in nose.tools. Support for generators in test classes. Better import path handling -- that you can shut off! Detailed verbose logging using the logging package. And &lt;a href="http://somethingaboutorange.com/mrl/projects/nose/"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/06/nose-09-final.html' title='Nose 0.9 final!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=115171988206760103' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/115171988206760103'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/115171988206760103'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-114652769975403747</id><published>2006-05-01T18:43:00.000-05:00</published><updated>2006-05-01T19:48:12.063-05:00</updated><title type='text'>nose 0.9.0a1 released!</title><content type='html'>&lt;p&gt;I'm pleased to announce the first release of nose 0.9, 0.9.0a1. nose 0.9 includes a host of new features, as well as numerous backwards-incompatible changes to interfaces and implementation. For this reason, I'm releasing it first as an alpha version.&lt;/p&gt;&lt;p&gt;Thanks to the many folks who have contributed patches and ideas and made bug reports for the development version of 0.9, especially Mika Eloranta, Jay Parlar, Kevin Dangoor, Scot Doyle and Philip J. Eby.&lt;/p&gt;&lt;p&gt;Here's a quick rundown of what's new in 0.9.0a1.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Plugins&lt;p&gt;The most important new feature is support for plugins using setuptools entrypoints. nose plugins can select and load tests (like the builtin doctest plugin), reject tests (like the builtin attrib plugin, contributed by Mika Eloranta, that allows users to select tests by attribute), watch and report on tests (like the builtin coverage and profiler plugins), completely replace test result output (like the html result plugin in the examples directory) or any combination of the above. Writing plugins is simple: subclass nose.plugins.Plugin and implement any of the methods in nose.plugins.IPluginInterface.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Better compatibility with unittest&lt;p&gt;Test loading has been consolidated into a test loader class that is drop-in compatible with unittest.TestLoader. Likewise test result output, including output capture, assert introspection, and support for skipped and deprecated tests, in nose.result.TextTestResult. If you want those features and not the rest of nose, you can use just those classes. nose.main() has also been rewritten to have the same signature as unittest.main().&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;Better command line interface&lt;p&gt;Command line test selection is more intuitive and powerful, enabling easy and correct running of single tests while ensuring that fixtures (setup and teardown) are correctly executed at all levels. No more -f -m or -o options; now simply specify the tests to run:&lt;/p&gt;&lt;pre&gt;    nosetests this/file.py that.module&lt;/pre&gt;&lt;p&gt;Tests may be specified down to the callable:&lt;/p&gt;&lt;pre&gt;    nosetests this/file.py:TestClass that.module:this_test&lt;/pre&gt;&lt;pre&gt;    nosetests that.module:TestClass.test_method&lt;/pre&gt;&lt;p&gt;There are also new options for dropping into pdb on errors or failures, and stopping the test run on the first error or failure (thanks to Kevin Dangoor for the idea).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;More!&lt;p&gt;Helpful test decorators and functions in nose.tools. Support for generators in test classes. Better import path handling -- that you can shut off! Detailed verbose logging using the logging package. And more...&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For more information, installation instructions, see the nose project page, here:&lt;a href="http://somethingaboutorange.com/mrl/projects/nose/"&gt;http://somethingaboutorange.com/mrl/projects/nose/&lt;/a&gt;&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/05/nose-090a1-released.html' title='nose 0.9.0a1 released!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=114652769975403747' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114652769975403747'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114652769975403747'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-114271656785731413</id><published>2006-03-18T14:50:00.000-06:00</published><updated>2006-03-18T15:17:09.416-06:00</updated><title type='text'>Nose 0.9: good ideas</title><content type='html'>&lt;p&gt;Thanks to Mika Eloranta, nose 0.9 will feature a plugin that allows selection of tests to run by introspection of test class, method or function attributes. Here are a few usage examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple syntax (-a, --attr) examples:
  &lt;ul&gt;
  &lt;li&gt;&lt;code&gt;nosetests -a status=stable&lt;/code&gt;&lt;br /&gt;
    &lt;b&gt;Only test cases with attribute "status" having value "stable"&lt;/b&gt;&lt;/li&gt;

  &lt;li&gt;&lt;code&gt;nosetests -a priority=2,status=stable&lt;/code&gt;&lt;br /&gt;
    &lt;b&gt;Both attributes must match&lt;/b&gt;&lt;/li&gt;

  &lt;li&gt;&lt;code&gt;nosetests -a tags=http&lt;/code&gt;&lt;br /&gt;
    &lt;b&gt;Attribute list "tags" must contain value "http"&lt;/b&gt;&lt;/li&gt;

  &lt;li&gt;&lt;code&gt;nosetests -a slow&lt;/code&gt;&lt;br /&gt;
    &lt;b&gt;Attribute "slow" must be defined and its value cannot 
       be equal to False (False, [], "", etc...)&lt;/b&gt;&lt;/li&gt;

  &lt;li&gt;&lt;code&gt;nosetests -a !slow&lt;/code&gt;&lt;br /&gt;
    &lt;b&gt;Attribute "slow" must NOT be defined or its value must 
       be equal to False&lt;/b&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Eval expression syntax (-A, --eval-attr) examples:
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;nosetests -A "not slow"&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;nosetests -A "(priority &amp;lt; 5) and not slow"&lt;/code&gt;&lt;/li&gt;

  &lt;b&gt;Quoted expression will be evaluated in the context of each 
  test case, and only test cases where it evaluates to true 
  will be selected.&lt;/b&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/code&gt;

&lt;p&gt;Pretty cool. This is such a good idea, and will be so generally useful, that I think it alone justifies the pluginization of nose. I'm excited to see what other good ideas might be lurking out there, too.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/03/nose-09-good-ideas.html' title='Nose 0.9: good ideas'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=114271656785731413' title='4 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114271656785731413'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114271656785731413'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-114187605701121469</id><published>2006-03-08T21:42:00.000-06:00</published><updated>2006-03-08T21:47:37.026-06:00</updated><title type='text'>Nose 0.9: svn and trac available</title><content type='html'>&lt;p&gt;Thanks to the great folks at &lt;a href="http://www.python-hosting.com/"&gt;Python Hosting&lt;/a&gt;, nose is now available via svn checkout, and has a trac instance for documentation, bug reports and feature requests. Here's trac: &lt;a href="http://nose.python-hosting.com"&gt;http://nose.python-hosting.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A note of caution: the trac instance and svn access are meant to support the development of the next nose version, 0.9. 0.9 is under heavy development right now, so the code available on the side and the documentation in trac is likely to be broken, wrong, and out of date all at the same time.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/03/nose-09-svn-and-trac-available.html' title='Nose 0.9: svn and trac available'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=114187605701121469' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114187605701121469'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114187605701121469'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-114153449721555979</id><published>2006-03-04T22:57:00.000-06:00</published><updated>2006-03-04T22:59:55.106-06:00</updated><title type='text'>Nose 0.9: output capture</title><content type='html'>&lt;p&gt;Or, monkeypatches in rear view mirror may be larger than they appear.&lt;/p&gt;

&lt;p&gt;Nose runs in two environments: one where it has control over the entire test-running and output process, and another where it has direct control only over the tests collected. Handling output capture and printing captured output with errors and failures is easy in the first case. In the second, it requires a monkeypatch: something somewhere that's not part of nose needs a piece of nose inserted, to handle capturing and printing the output capture.&lt;/p&gt;

&lt;p&gt;In cases like these, the best strategy is to pick the smallest monkey and patch as gently as possible. I know this. So the only explanation I can come up with for the decision I made in the current release of nose to patch the builtin Exception class -- yes, the base class for all exceptions everywhere -- instead of, say, unittest._TextTestRunner, is that an optical illusion more powerful than 10,000 of those annoying 3d posters from the 1990s made the biggest monkey in the world look like some sort of 1/72nd scale anorexic marmoset figurine.&lt;/p&gt;

&lt;p&gt;Nose 0.9 will correct this insanity by only patching unittest, and only when necessary. As a happy side effect, this also allows nose to lose three now-superfluous classes and a bunch of confusing documentation.&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/03/nose-09-output-capture.html' title='Nose 0.9: output capture'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=114153449721555979' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114153449721555979'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114153449721555979'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-114136103516823545</id><published>2006-03-02T22:43:00.000-06:00</published><updated>2006-03-02T22:48:09.930-06:00</updated><title type='text'>Nose: the road to 0.9</title><content type='html'>Nose, my little python test runner, has set foot (or, Simpson-philes, shopping cart wheel) on its mystical journey to version 0.9. Since it's gotten a bit more use and attention lately, I'm going to chronicle major changes in operation and APIs as I make them here, on this dusty old blog.
First up, test selection via the command line. After too much mulling, I've decided that Titus Brown is right, and this:
&lt;code&gt;nosetests a.module&lt;/code&gt;
Should discover all tests, but run only the test(s) specifed. To select a single test or test class, with nose 0.9, you'll be able to say:
&lt;code&gt;nosetests a.module:Class.method other.module:function&lt;/code&gt;
I think that will be an improvement. The -f, -m and -o options will most likely be deprecated.</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/03/nose-road-to-09.html' title='Nose: the road to 0.9'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=114136103516823545' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114136103516823545'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/114136103516823545'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-10316268.post-113735533462416443</id><published>2006-01-15T14:02:00.000-06:00</published><updated>2006-01-15T14:02:14.640-06:00</updated><title type='text'>Help on the way for lazy bloggers</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;This is a test post from a new blog editor extension for firefox called &lt;a href="http://performancing.com/firefox"&gt;performancing&lt;/a&gt; that seems pretty swell at first glance.&lt;br/&gt;&lt;br/&gt;Anything that can decrease blogging inertia can only help.&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://somethingaboutorange.com/mrl/2006/01/help-on-way-for-lazy-bloggers.html' title='Help on the way for lazy bloggers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10316268&amp;postID=113735533462416443' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/mrl/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/113735533462416443'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10316268/posts/default/113735533462416443'/><author><name>jhp</name><uri>http://www.blogger.com/profile/11635453295034649121</uri><email>noreply@blogger.com</email></author></entry></feed>