Python Programming, news on the Voidspace Python Projects and all things techie.
Resolver Beta 6 Out Now
A late Christmas present from Resolver.
Resolver Beta 6 is now available for (free) download:
Resolver One is a programmable spreadsheet, written in IronPython. It is a full spreadsheet application, and like traditional spreadsheets has a grid and formula language. It also has an integrated code editor, and Python code in the editor has full access to your spreadsheet objects. This code is executed as a normal part of the spreadsheet calculation, meaning that your code is fully integrated with the spreadsheet (including using functions and objects in the grid and formulae). This makes Resolver an ideal platform for the rapid development of business and data processing applications.
Improvements in this version:
- The worksheet scroll position and selection is per-worksheet.
- Worksheets larger than one page now print appropriately.
- Built-in support for currencies - try entering (say) $15 in a cell.
Bugfixes in this version:
- Fixed defect: Pasting text can rewrite formulae unexpectedly.
- Fixed defect: Array formulae are not offset when pasting an array
- Fixed defect: Cycles involving names aren't resolved when the name is redefined to break the cycle.
- Fixed defect: Keyboard reference-grabbing does not scroll view.
- Fixed defect: Grid context menu should include a 'Format Text...' item
- Fixed defect: 'decimal.py' fails to import (preventing Resolver from starting) in the Turkish locale.
- Fixed defect: Crash during Resolver startup with Indian locale
A few of these new features and defect fixes really improve usability. The new currency support is useful too, I've already used it in a spreadsheet recalculating loan repayments for the house we are buying.
Further known bugs / requirements for version 1.0
- Bloomberg not updating with real-time data.
- Final 1.0 aesthetic tweaks.
- Find option (with ctrl-f).
- Include all formatting when exporting in Microsoft Excel format.
- Support italic, underline, and other options from format/text dialog.
- Alert user when new versions are available.
Of these the first, third and fourth (and possibly the last one as well) are basically done - either in SVN head already or just waiting for checkin. It looks like we are ahead of target for our January 15th 1.0 release date, so we should have time to nail a few extra defects.
Of course, for my ideas of what we should be focusing on, read Bugs, Features and Futures.
Remote Pairing with Copilot and Skype
Today I was due in at work, but engineering works between Northampton and London meant that there were no trains (which I didn't discover until I got to the station). I would have quite happily stayed at home and spiked, but Glenn was actually in the office and we couldn't think of enough for two of us to spike. At Resolver we practise Pair Programming, and all production code has to be paired on, so we decided to experiment with remote pairing.
We used Skype for the audio, which was straightforward.
We considered using a collaborative editor, like Gobby. We decided in the end to try screen sharing as it would be more flexible. Additionally, I didn't have a full build environment and copy of the subversion tree we were working on (and a collaborative editor would probably require me to have the files being edited).
It is based on VNC and is really easy to use. A day pass costs $5  (I paid with Paypal) and then both 'sides' download a 736kb client and run it. That's it, no messing around with IP addresses or configuring routers and firewalls, just run the client and you are sharing a screen (the session id is encoded into the client you download - very clever).
Both Resolver and I have a pretty good internet connection, and the screen sharing was very good. There was a bit of a lag, but less than the VNC clients I've used - even when the connection is only across an intranet .
It was a great experience. The audio connection was seamless and it really felt like 'pairing'. We worked together on the problem, and were both able to 'drive' (control the keyboard). We even completed the user story!
As there is a Mac client (no Linux client I'm afraid) I could pair program Resolver without having to use Windows! Obviously a non-propietary solution would be even better than copilot, but I can't see one being as easy to use.
I really enjoy working at Resolver, but I can't see myself doing the two hour commute (each way) indefinitely. If I could work from home this would be my dream job.
On a totally different note, I've received my Moo Cards (and they're great) and an Eee PC with 8GB flash drive and 1GB memory . I've also been watching The Muppet Show and The Cosby Show, both of which were childhood favourites and still hilarious - as you would know if you were following me on Twitter.
|||They also have a subscription model but the rates aren't very good compared to a 24hour pass - even just for eight or nine hours straight use.|
|||I later tried it with Andrzej with him using the Mac client. As his home network connection isn't so good the lag was more noticeable but still acceptable.|
|||I know. I cancelled a previous order, but My Boss got one and it looks really nice. The lure of the bigger drive and memory was too much for me.|
Twittering and Aggregating RSS Streams
I've finally succumbed: http://www.twitter.com/voidspace
I played around with Pownce, and I really liked the Adobe Air client, but I don't think anyone was listening to me. There are several people I know using twitter.
I'm using the Windows Twiteroo client and it's pretty good.
What I'd really like to do is combine onto this website  (with a single feed of course) my RSS feeds from places like Twitter, del.icio.us, Flickr, my Google Reader Shared Items and so on. I could just use the Planet aggregator with a template, but a UI to add notes would be nice. (Even with all these feeds combined it would still only be a few items a day.) Feedparser is so easy to use that it would be a nice simple project, but I keep getting distracted by having to write a book...
I blogged about Onaswarm recently, which does aggregate these 'social feeds' into a single 'lifestream'. It even does Facebok feeds and uses OpenID - both of which are cool. I want it on my website and looking like my website though...
|||Actually I'd like to create a separate 'link blog' which would include my Twitter feed and any del.icio.us bookmarks I mark with a 'shared' tag.|
More Interesting Snippets
There has been a rash of great blog entries recently. In lieu of doing a real blog entry myself, here are some quotes from a few that caught my attention:
Lines of code are, and always have been, the enemy. More lines of code means more to read, more to understand, more to troubleshoot, more to debug.
He cites Martin Fowler and Bruce Eckel as examples of people who have made the switch to dynamic languages as part of the solution to this problem:
A lot of incredibly smart people like Steve present a compelling case that the grass really is greener on the dynamic side.
Bruce Eckel's entry on why he is not upgrading to Vista includes a point I've not heard before. The End of the Vista Experiment:
I'm still tied to Windows because certain software tools only work on Windows. Although OpenOffice is great, its word processor can't handle documents the size of a book (initially it would crash, now it doesn't but it runs so slowly it's unusable). MS Word is still the only word processor that can produce camera-ready documents that are book-sized (Yes, I do know about all the two-step approaches: "just write it using this one tool, and lay it out using this other one." It's only efficient when you say it like that, not in reality).
I have no axe to grind here, but this is the first time I've heard anyone say that. I've just bought Pages for the Mac and it seems to handle the word documents I use fine, but IronPython in Action is being written with one document per chapter.
Bruce Schneier has a very insightful (and pleasingly short) blog entry on airport security: Airport Security Study
A team at the Harvard School of Public Health could not find any studies showing whether the time-consuming process of X-raying carry-on luggage prevents hijackings or attacks. They also found no evidence to suggest that making passengers take off their shoes and confiscating small items prevented any incidents.
""Even without clear evidence of the accuracy of testing, the Transportation Security Administration defended its measures by reporting that more than 13 million prohibited items were intercepted in one year," the researchers added. "Most of these illegal items were lighters."
This is where the TSA has it completely backwards. The goal isn't to confiscate prohibited items. The goal is to prevent terrorism on airplanes. When the TSA confiscates millions of lighters from innocent people, that's a security failure. The TSA is reacting to non-threats. The TSA is reacting to false alarms. Now you can argue that this level of failures is necessary to make people safer, but it's certainly not evidence that people are safer.
Bruce has repeatedly asked whether there is any evidence that these ridiculous security measures are actually doing anything worthwhile. I love his message that we should refuse to be terrorised.
It made me wonder if other people get an actual physical pleasure from doing work, at least the kind where you accomplish something, no matter how unimportant. [...]
You have to believe most bloggers have few if any actual readers. The writers are in it for other reasons. Blogging is like work, but without coworkers thwarting you at every turn. All you get is the pleasure of a completed task.
And finally... there are some great new things happening 'on the head' with Python. Lawrence Oluyede tracks recent changes in Python SVN: Updates from Python SVN, Part 19. Lots of interesting tidbits there so I won't attempt to summarise.
(That was a week without blogging - over the last three years I have averaged six posts a week!)
This work is licensed under a Creative Commons Attribution-Share Alike 2.0 License.