From mark at parit.ca Thu Nov 4 16:15:39 2010 From: mark at parit.ca (Mark Jenkins) Date: Thu, 04 Nov 2010 15:15:39 -0500 Subject: [Python Wpg] ParIT's Bo-Keep 1.0 launch party Message-ID: <4CD3146B.5090908@parit.ca> Hey fellow pythonists You're invited to attend ParIT's launch party for Bo-Keep 1.0 on Sunday November 14 at noon. Location: 91 Albert Street, 3rd floor (Rudolph Rocker Cultural Centre) [Please note that the third floor is only reachable by stairs.] Free Catered Food will be available. I'm going to go out on a limb here and guess that this is the first time a program written in python will receive a public launch party in Winnipeg. And I should really offer the Python group a presentation sometime in December or later. So, what is it? Bo-Keep is a platform that support custom entry interfaces for specific tasks to ease book keeping. "Bo-Keep helps you keep your books so you don't get lost". It integrates with GnuCash using the python bindings that ParIT contributed upstream a few year back. Not only are we calling this our 1.0 milestone, but it will be the first release that we will actively promote as a public free software project. Mark Jenkins From kveroneau at gmail.com Thu Nov 11 00:23:08 2010 From: kveroneau at gmail.com (Kevin Veroneau) Date: Wed, 10 Nov 2010 23:23:08 -0600 Subject: [Python Wpg] Has anyone used Plone before? Message-ID: Hello everybody, Just curious if anyone has touched base on a popular Python CMS called Plone? It is based off of Zope, which I have used a long time ago, about 3 years ago. Plone is suppose to be really good and is used by a few notable companies, including Nokia and others for their websites. I am in the process of installing and testdriving it now to see how it work functionality-wise and how easy it is to extend using it's APIs. Oh, a small added pleasure for you desktop application programmers on the list. Below is the same application in both GTK and Qt formats, both written in Python to demonstrate how they differ: GTK version: import pygtk pygtk.require('2.0') import gtk class Form(gtk.Window): def say_hi(self,widget,event,Data=None): oth.say_hi(self.na.get_text()) def delete_event(self, widget, data=None): return False def destroy(self, widget, data=None): gtk.main_quit() def main(self): self.connect("delete_event", self.delete_event) self.connect("destroy", self.destroy) self.ctl = gtk.Table(1, 1, True) lbl = gtk.Label("Name:") lbl.show() self.ctl.attach(lbl,0,1,0,1) self.na = gtk.Entry() self.na.show() self.ctl.attach(self.na,1,2,0,1) btn = gtk.Button("Submit") btn.connect("clicked",self.say_hi,None) btn.show() self.ctl.attach(btn,2,3,0,1) self.ctl.show() self.add(self.ctl) self.show() gtk.main() class OtherClass: def __init__(self): print "OtherClass init." def say_hi(self,data='World'): print "Hello %s!" % data if __name__ == "__main__": oth = OtherClass() win = Form(gtk.WINDOW_TOPLEVEL) win.main() ------------------------------------------------------------------------------------ Qt3 version: from qt import * import sys class Form1(QDialog): def __init__(self,parent = None,name = None,modal = 0,fl = 0): QDialog.__init__(self,parent,name,modal,fl) if not name: self.setName("Form1") self.textLabel1 = QLabel(self,"textLabel1") self.textLabel1.setGeometry(QRect(10,10,50,21)) self.na = QLineEdit(self,"na") self.na.setGeometry(QRect(60,10,121,23)) self.pushButton1 = QPushButton(self,"pushButton1") self.pushButton1.setGeometry(QRect(180,5,70,32)) self.languageChange() self.resize(QSize(253,39).expandedTo(self.minimumSizeHint())) self.clearWState(Qt.WState_Polished) self.connect(self.pushButton1,SIGNAL("clicked()"),self.say_hi) def languageChange(self): self.setCaption(self.__tr("Form1")) self.textLabel1.setText(self.__tr("Name:")) self.pushButton1.setText(self.__tr("Submit")) def say_hi(self): oth.say_hi(self.na.text().ascii()) def __tr(self,s,c = None): return qApp.translate("Form1",s,c) class OtherClass: def __init__(self): print "OtherClass init." def say_hi(self,data='World'): print "Hello %s!" % data oth = OtherClass() app = QApplication(sys.argv) f = Form1() f.show() app.setMainWidget(f) app.exec_loop() -------------------------------------------------------- These are apps using raw API coding into GTK and Qt3, however one can easily use the QtDesigner for Qt3, and GLADE for GTK. I made the same example apps again using these simple interface builders. Those familiar with Visual Studio should use QtDesigner, as it is very very similar. These example apps here by no way use best Python programming practices. Kevin. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuart at swilliams.ca Fri Nov 12 08:36:50 2010 From: stuart at swilliams.ca (Stuart Williams) Date: Fri, 12 Nov 2010 07:36:50 -0600 Subject: [Python Wpg] Has anyone used Plone before? In-Reply-To: References: Message-ID: I set it up 5 or 6 years ago for a client who wanted its event calendar functionality. Stuart. On Wed, Nov 10, 2010 at 11:23 PM, Kevin Veroneau wrote: > Hello everybody, > > Just curious if anyone has touched base on a popular Python CMS called > Plone? It is based off of Zope, which I have used a long time ago, about 3 > years ago. Plone is suppose to be really good and is used by a few notable > companies, including Nokia and others for their websites. I am in the > process of installing and testdriving it now to see how it work > functionality-wise and how easy it is to extend using it's APIs. > > Oh, a small added pleasure for you desktop application programmers on the > list. Below is the same application in both GTK and Qt formats, both > written in Python to demonstrate how they differ: > > GTK version: > import pygtk > pygtk.require('2.0') > import gtk > > class Form(gtk.Window): > def say_hi(self,widget,event,Data=None): > oth.say_hi(self.na.get_text()) > def delete_event(self, widget, data=None): > return False > def destroy(self, widget, data=None): > gtk.main_quit() > def main(self): > self.connect("delete_event", self.delete_event) > self.connect("destroy", self.destroy) > self.ctl = gtk.Table(1, 1, True) > lbl = gtk.Label("Name:") > lbl.show() > self.ctl.attach(lbl,0,1,0,1) > self.na = gtk.Entry() > self.na.show() > self.ctl.attach(self.na,1,2,0,1) > btn = gtk.Button("Submit") > btn.connect("clicked",self.say_hi,None) > btn.show() > self.ctl.attach(btn,2,3,0,1) > self.ctl.show() > self.add(self.ctl) > self.show() > gtk.main() > > class OtherClass: > def __init__(self): > print "OtherClass init." > def say_hi(self,data='World'): > print "Hello %s!" % data > > if __name__ == "__main__": > oth = OtherClass() > win = Form(gtk.WINDOW_TOPLEVEL) > win.main() > > ------------------------------------------------------------------------------------ > > Qt3 version: > from qt import * > import sys > > class Form1(QDialog): > def __init__(self,parent = None,name = None,modal = 0,fl = 0): > QDialog.__init__(self,parent,name,modal,fl) > > if not name: > self.setName("Form1") > > self.textLabel1 = QLabel(self,"textLabel1") > self.textLabel1.setGeometry(QRect(10,10,50,21)) > > self.na = QLineEdit(self,"na") > self.na.setGeometry(QRect(60,10,121,23)) > > self.pushButton1 = QPushButton(self,"pushButton1") > self.pushButton1.setGeometry(QRect(180,5,70,32)) > > self.languageChange() > > self.resize(QSize(253,39).expandedTo(self.minimumSizeHint())) > self.clearWState(Qt.WState_Polished) > > self.connect(self.pushButton1,SIGNAL("clicked()"),self.say_hi) > > def languageChange(self): > self.setCaption(self.__tr("Form1")) > self.textLabel1.setText(self.__tr("Name:")) > self.pushButton1.setText(self.__tr("Submit")) > > def say_hi(self): > oth.say_hi(self.na.text().ascii()) > > def __tr(self,s,c = None): > return qApp.translate("Form1",s,c) > > class OtherClass: > def __init__(self): > print "OtherClass init." > def say_hi(self,data='World'): > print "Hello %s!" % data > > oth = OtherClass() > app = QApplication(sys.argv) > f = Form1() > f.show() > app.setMainWidget(f) > app.exec_loop() > -------------------------------------------------------- > These are apps using raw API coding into GTK and Qt3, however one can > easily use the QtDesigner for Qt3, and GLADE for GTK. I made the same > example apps again using these simple interface builders. > Those familiar with Visual Studio should use QtDesigner, as it is very very > similar. These example apps here by no way use best Python > programming practices. > > Kevin. > > _______________________________________________ > Winnipeg Python Users Group mailing list > http://WinniPUG.ca > Winnipeg at python.org > http://mail.python.org/mailman/listinfo/winnipeg > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.hohner at uwinnipeg.ca Sun Nov 21 23:41:00 2010 From: m.hohner at uwinnipeg.ca (Michael Hohner) Date: Sun, 21 Nov 2010 22:41:00 -0600 Subject: [Python Wpg] Fwd: Paul's Python Pearls - A Free Webcast References: <1290196940.23803.0.549758@post.oreilly.com> Message-ID: <4CE99FFB.96A9.0081.1@uwinnipeg.ca> >>> "O'Reilly Webcasts" 11/19/2010 2:02 PM >>> If you would like to view this information in your browser, click here: http://post.oreilly.com/rd/9z1zv1g47dafu2c1256p822c3q0q8kgp5riipd7ttp8 Join us for this free, live webcast: Paul's Python Pearls Presented by: Paul Barry, author of Head First Python Over the past quarter century, Paul Barry has used lots of different programming languages on lots of different platforms. In this webcast, Paul discusses what it is about his current favorite language--Python--that makes it a stand-out programming technology for him. Paul discusses those Python features that are "pearls", in his opinion. You may not agree with all of Paul's picks, but we hope you'll find Paul's discussion interesting, enlightening and maybe even entertaining. And, of course, as this is an O'Reilly webcast, you're invited to the party, too, so come along and have your say. =================== Attendance is limited, so register now. We'll send you a reminder before the webcast. And please feel free to share this invitation with others. Date: Wednesday, December 1 at 1 pm PT Price: Free Duration: Approximately 60 minutes To register: http://post.oreilly.com/rd/9z1zm4d833n4qjkd6v2kt6r4u89drquret19cbs7hp0 Questions? Please send email to webcast at oreilly.com =================== Paul Barry lectures at the Institute of Technology, Carlow as part of the Department of Computing & Networking, where he specializes in open source scripting technologies, web development and computer networking. Paul is also a Contributing Editor to Linux Journal magazine, for whom he'd write a lot more articles if only he didn't spend so much time writing technical books. His latest book--part of the popular O'Reilly Head First series--is Head First Python, which is designed to help non-Python programmers get up-to-speed with Python and its technologies as quickly as possible. Previously he wrote Head First Programming (co-authored with David Griffiths), which teaches programming concepts to new programmers using Python 3 as the demonstration language. Paul's two other books are based on Perl (and are published by Wiley). =================== About O'Reilly O'Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O'Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption by amplifying "faint signals" from the alpha geeks who are creating the future. An active participant in the technology community, the company has a long history of advocacy, meme-making, and evangelism. # # # O'Reilly is a registered trademark of O'Reilly Media, Inc. All other trademarks are property of their respective owners. =================== You are receiving this message because you expressed interest in hearing about O'Reilly Webcasts. Forward this invitation to a friend: http://post.oreilly.com/f2f/9z1zvjev2mq0qbtcpe6qaoj8qjudm4qtek134f6vov0 For assistance, or if you no longer wish to receive notifications about O'Reilly Webcasts, send an email to webcast at oreilly.com. O'Reilly Media, Inc. 1005 Gravenstein Highway North, Sebastopol, CA 95472 (707) 827-7000 From dnielsen at gmail.com Fri Nov 26 12:40:09 2010 From: dnielsen at gmail.com (Dave Nielsen) Date: Fri, 26 Nov 2010 11:40:09 -0600 Subject: [Python Wpg] CloudCamp Winnipeg Dec 6 In-Reply-To: References: Message-ID: Hi WinniPUG folks, We're organizing CloudCamp Winnipeg Monday evening December 6 at the Winnipeg Convention Centre. I thought some WinniPUG people might want to participate in this free event. CloudCamp is a free Cloud Computing event structured as an unconference. End users, IT professionals and vendors are all encouraged to share experiences, challenges and solutions. There will be lots of networking, food and discussion. Does anyone have experience in Cloud Computing in Python? Would you like to share it with a quick lightning talk? We have some great 5-minute lightning talks set already but there's room for more. Topics so far include resource pricing, mobile apps, and Azure. Contact me and we can have your talk added to the list. For more information, refer to http://www.cloudcamp.org/winnipeg, follow us on Twitter @CloudCampYWG , or contact me. Thanks, Stuart, for letting me post this invite. Cheers, Dave Dave Nielsen Co-founder, CloudCamp twitter: http://twitter.com/davenielsen gtalk: dnielsen; skype: davenielsen m: 415-531-6674 -------------- next part -------------- An HTML attachment was scrubbed... URL: