Later I started developing Phatch (Photo Batch Processor) and used my experience of SPE to polish if for Linux, Mac OS X and Windows. I took care of distributing it well on Linux by getting it in the major repositories (Debian, Ubuntu, Fedora, Arch, Suse, ...). Unfortunately I lacked the time for proper distribution on Mac OS X and Windows. I am happy to announce that is going to change.
Together with Nadia Alramli (other Phatch developer) we've dived deeper in the subject of developing and distributing cross-platform applications. Our conclusion is that is it takes more time to research than to implement the code. Therefore we are eager to share our knowledge during our talk at Pycon to save you from hair-pulling behaviour. We have learnt that Python solves 90% of the cross-platform problems for you, but that the remaining 10% could be tricky. In our talk we will point the finger on several painful issues and offer solutions, hoping that they will save you time and frustration.
We prepared the talk by writing a paper (outline here), which is far more extensive than the 30 min of talk will allow us. We designed the talk to give you a good overview and to get you started. I have send the paper for review to some people I highly respect. These were some reactions:
- "Great document, I learned new things from it!" Piotr Ożarowski (Debian Python Application Package Team)
- "It's a pity I can not attend PyCon. Anyway, the subjects you are describing in the paper are seldom analyzed in such depth, and I believe the whole community will benefit from your presentation. Most interesting of all, correctly packaging and distributing an app on multiple platforms can be a deep nightmare and what you have on your paper is a beautiful example of how to avoid the most hair-pulling mistakes in doing it." Andrea Gavana (wxPython)
We will use wxPython as an example GUI toolkit, but the principles are valid for other toolkits as well. Our target audience are programmers who have already some experience on one platform but are wondering how things could be implemented on other platforms. Making your application cross-platform is the most efficient way to scale your user base.
Rather than making any bullet point slides, we did our best to make the slides visually entertaining. So even if our voices would suddenly mute, you have at least something nice to look at. As the author of SPE I made sure that all code slides have a pretty syntax highlight. Combining Pygments with Inkscape rocks!
I hope to see you at our talk at Friday 02:55pm @ Centennial II !
Wow, Stani, I didn't realise you were an Ubuntu member. Congrats! (I'm probably years late, amn't I?)ReplyDelete
@Flimm: As late, alas, as much of the Python Software Foundation, for I fear we have failed to adequately publicize Stani's successes to our members.ReplyDelete
Stani has created high quality tools, creatively demonstrated the real design capabilities of well-selected sets of open source components. His latest endeavor, Phatch, reaches well beyond pure Linux utility to ensure that Windows users get a more than acceptable UI on the Windows platform. I have seen Phatch grow from "barely acceptable" to "wow" amazingly fast.
Let this stand as my nomination for Stani as a member of the Python Software Foundation. SH
Great! Too bad I can't attend Pycon, the subject is indeed highly interesting. I hope we poor souls who won't hear you will get a chance to see the slides too ;) Good luck there!ReplyDelete
You and Nadia gave the most visually beautiful, artfully-designed talk I have ever seen, anywhere, on any subject. Congratulations!ReplyDelete
Stani, you need to add a note about low-level os.open() call that by default opens file in text mode on Windows. You need to specify O_BINARY flag on Windows if your program uses low-level os.open function.ReplyDelete
Hi, Im Daniel from Argentina. I would like to read your paper. Please let me know if you are willing to share it before PyCon (I won't be able to go).ReplyDelete
Daniel, the talk took place already. All the material is here: http://us.pycon.org/2010/conference/schedule/event/38/ReplyDelete