From nick.albright at gmail.com Tue Mar 1 16:30:40 2011 From: nick.albright at gmail.com (Nick Albright) Date: Tue, 1 Mar 2011 10:30:40 -0500 Subject: [CentralOH] The Better Twitter site from 2/28 meeting? Message-ID: Hola Folks! I was wondering if someone remembered the name of the site mentioned yesterday that was like twitter, but with better conversation support? Thanks! = ) -Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From issac.kelly at gmail.com Tue Mar 1 16:31:31 2011 From: issac.kelly at gmail.com (Issac Kelly) Date: Tue, 1 Mar 2011 10:31:31 -0500 Subject: [CentralOH] The Better Twitter site from 2/28 meeting? In-Reply-To: References: Message-ID: Was it convore? ------- Issac Kelly servee.com issackelly.com -------------------------- On Tue, Mar 1, 2011 at 10:30 AM, Nick Albright wrote: > Hola Folks! > > I was wondering if someone remembered the name of the site mentioned > yesterday that was like twitter, but with better conversation support? > > Thanks! = ) > -Nick > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.albright at gmail.com Tue Mar 1 16:32:37 2011 From: nick.albright at gmail.com (Nick Albright) Date: Tue, 1 Mar 2011 10:32:37 -0500 Subject: [CentralOH] The Better Twitter site from 2/28 meeting? In-Reply-To: References: Message-ID: Yes! = ) Thanks! :) -Nick On Tue, Mar 1, 2011 at 10:31 AM, Issac Kelly wrote: > Was it convore? > > > > ------- > Issac Kelly > servee.com > issackelly.com > -------------------------- > > > On Tue, Mar 1, 2011 at 10:30 AM, Nick Albright wrote: > >> Hola Folks! >> >> I was wondering if someone remembered the name of the site mentioned >> yesterday that was like twitter, but with better conversation support? >> >> Thanks! = ) >> -Nick >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> http://mail.python.org/mailman/listinfo/centraloh >> >> > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From issac.kelly at gmail.com Tue Mar 1 16:35:16 2011 From: issac.kelly at gmail.com (Issac Kelly) Date: Tue, 1 Mar 2011 10:35:16 -0500 Subject: [CentralOH] The Better Twitter site from 2/28 meeting? In-Reply-To: References: Message-ID: Sweet! I <3 convore! We're doing a mobile app (android....maybe iPhone) Let me know if you want on our announce list, or for cohpy, I'll probably send a pre-release out privately if anyone is interested (I've been testing it all week) Mailing list: http://t.co/nzQroHW screenshot: http://t.co/vhvGfEy On Tue, Mar 1, 2011 at 10:32 AM, Nick Albright wrote: > Yes! = ) Thanks! :) > -Nick > > > On Tue, Mar 1, 2011 at 10:31 AM, Issac Kelly wrote: > >> Was it convore? >> >> >> >> ------- >> Issac Kelly >> servee.com >> issackelly.com >> -------------------------- >> >> >> On Tue, Mar 1, 2011 at 10:30 AM, Nick Albright wrote: >> >>> Hola Folks! >>> >>> I was wondering if someone remembered the name of the site mentioned >>> yesterday that was like twitter, but with better conversation support? >>> >>> Thanks! = ) >>> -Nick >>> >>> _______________________________________________ >>> CentralOH mailing list >>> CentralOH at python.org >>> http://mail.python.org/mailman/listinfo/centraloh >>> >>> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> http://mail.python.org/mailman/listinfo/centraloh >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From morgan.goose at gmail.com Tue Mar 1 16:57:06 2011 From: morgan.goose at gmail.com (Morgan Goose) Date: Tue, 1 Mar 2011 10:57:06 -0500 Subject: [CentralOH] The Better Twitter site from 2/28 meeting? In-Reply-To: References: Message-ID: <20110301155706.GA30052@grumpy.morgan-dyn-o-saur.com> I'm interested. Have an iPhone now (work's choice), and am looking for more dev/admin/geek stuff to load it with. goose On Tue, Mar 01, 2011 at 10:35:16AM -0500, Issac Kelly wrote: > Sweet! I <3 convore! We're doing a mobile app (android....maybe iPhone) > Let me know if you want on our announce list, or for cohpy, I'll probably > send a pre-release out privately if anyone is interested (I've been > testing it all week) > Mailing list: [1]http://t.co/nzQroHW? > screenshot: [2]http://t.co/vhvGfEy > > On Tue, Mar 1, 2011 at 10:32 AM, Nick Albright > <[3]nick.albright at gmail.com> wrote: > > Yes! ?= ) ?Thanks! :) > ?-Nick > > On Tue, Mar 1, 2011 at 10:31 AM, Issac Kelly <[4]issac.kelly at gmail.com> > wrote: > > Was it convore? > ------- > Issac Kelly > [5]servee.com > [6]issackelly.com > -------------------------- > > On Tue, Mar 1, 2011 at 10:30 AM, Nick Albright > <[7]nick.albright at gmail.com> wrote: > > Hola Folks! > I was wondering if someone remembered the name of the site mentioned > yesterday that was like twitter, but with better conversation > support? > Thanks! ?= ) > ?-Nick > _______________________________________________ > CentralOH mailing list > [8]CentralOH at python.org > [9]http://mail.python.org/mailman/listinfo/centraloh > > _______________________________________________ > CentralOH mailing list > [10]CentralOH at python.org > [11]http://mail.python.org/mailman/listinfo/centraloh > > References > > Visible links > 1. http://t.co/nzQroHW > 2. http://t.co/vhvGfEy > 3. mailto:nick.albright at gmail.com > 4. mailto:issac.kelly at gmail.com > 5. http://servee.com/ > 6. http://issackelly.com/ > 7. mailto:nick.albright at gmail.com > 8. mailto:CentralOH at python.org > 9. http://mail.python.org/mailman/listinfo/centraloh > 10. mailto:CentralOH at python.org > 11. http://mail.python.org/mailman/listinfo/centraloh > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh ---end quoted text--- From eric at intellovations.com Mon Mar 14 02:04:46 2011 From: eric at intellovations.com (Eric Floehr) Date: Sun, 13 Mar 2011 21:04:46 -0400 Subject: [CentralOH] Python 3 Colossal Caves Adventure Message-ID: Will have a bigger recap of PyCon 2011 at the meeting (along with at least Morgan Goose who also attended) but I had to share this program that I found out about at one of the lightning talks. It is a faithful reproduction of Colossal Caves Adventure (the one Zork was based on). The really cool thing is you can play in the Python shell. The really *really* cool thing is that it uses a __repr__ trick to allow functions to be run without using parens. The really really *really* cool thing is that since you can play the game in the shell, there are unit tests in Python code, including two complete walkthroughs. Pretty awesome stuff when you think about it! If you have Python 3, just pip install adventure... here's the page for more info: http://pypi.python.org/pypi/adventure/0.3 Cheers, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at microenh.com Mon Mar 14 20:12:48 2011 From: mark at microenh.com (Mark Erbaugh) Date: Mon, 14 Mar 2011 15:12:48 -0400 Subject: [CentralOH] wxPython / Py2Exe Message-ID: I wrote an application several years ago using wxPython and created a Windows (XP) executable with Py2exe. One of my users got a new computer with Windows 7 Home Premium 64-bit and the application is now crashing. The application starts up with a splash / login screen which she sees. When she tries to log in, the wxPython stdout / stderr output screen briefly flashes (it took her several attempts to get a partial screen capture of this window so I know what it is, but the screen capture doesn't show all the window, especially the part where it tells what the problem is. I've seen stdout / stderr window before when a program raises an uncaught exception, but it usually stays on the screen. Is the fact that it is going away due to the fact that I used Py2exe or is this a Windows 7 thing? We've tried running the program from the command line and nothing is written to the console window. She's looked in the log files and there doesn't appear to be anything written there, although I'm new to Windows 7 and the errors may be hidden somewhere we haven't looked. I tried running the program on a clean install of Windows 7 Home Premium (both 64 and 32 bit versions) and it runs fine for me. There's no installation. The users copy the exe file and a couple of supporting files to their hard drive. For Vista and Windows 7 with UAC, I tell them to copy the folder to the "Documents" folder. Most of the program and supporting libraries are contained in the executable, but I found I had to distribute MSVCR71.dll and gdipluss.dll with the program to make it run on some machines where those weren't installed. On my clean install of W7 Home Premium 64-bit it looks like those files aren't needed. The program will run without those files in the program's folder. Any suggestions? Thanks, Mark From eric at intellovations.com Tue Mar 15 14:03:34 2011 From: eric at intellovations.com (Eric Floehr) Date: Tue, 15 Mar 2011 09:03:34 -0400 Subject: [CentralOH] wxPython / Py2Exe In-Reply-To: References: Message-ID: Mark, The fact that you can run the same program on a clean Windows 7 install successfully seems to indicate something environmental or specific to that computer. It's odd that running from the command line doesn't generate any text. Does the app crash when you run from the command line? Are there any differences in the way you run from the command line versus what is in the shortcut icon (path, options, etc.)? The "output screen" if it's a console window, will flash briefly if there is output, and stay if the application doesn't close. But your app is closing, which then also closes the console window. This is true of any app that writes to stdout I think, I've seen it on other programs that start from a batch file, etc. So my suggestions if you can rebuild the app are to have a global try/except in your main loop, send the trace to a file or to the stdout, and then do a raw_input('Press any key to terminate the app") or something like that, so the app doesn't close before you've had a chance to review the error. -Eric On Mon, Mar 14, 2011 at 3:12 PM, Mark Erbaugh wrote: > I wrote an application several years ago using wxPython and created a > Windows (XP) executable with Py2exe. One of my users got a new computer > with Windows 7 Home Premium 64-bit and the application is now crashing. The > application starts up with a splash / login screen which she sees. When she > tries to log in, the wxPython stdout / stderr output screen briefly flashes > (it took her several attempts to get a partial screen capture of this window > so I know what it is, but the screen capture doesn't show all the window, > especially the part where it tells what the problem is. > > I've seen stdout / stderr window before when a program raises an uncaught > exception, but it usually stays on the screen. Is the fact that it is going > away due to the fact that I used Py2exe or is this a Windows 7 thing? We've > tried running the program from the command line and nothing is written to > the console window. She's looked in the log files and there doesn't appear > to be anything written there, although I'm new to Windows 7 and the errors > may be hidden somewhere we haven't looked. > > I tried running the program on a clean install of Windows 7 Home Premium > (both 64 and 32 bit versions) and it runs fine for me. > > There's no installation. The users copy the exe file and a couple of > supporting files to their hard drive. For Vista and Windows 7 with UAC, I > tell them to copy the folder to the "Documents" folder. Most of the program > and supporting libraries are contained in the executable, but I found I had > to distribute MSVCR71.dll and gdipluss.dll with the program to make it run > on some machines where those weren't installed. On my clean install of W7 > Home Premium 64-bit it looks like those files aren't needed. The program > will run without those files in the program's folder. > > Any suggestions? > > Thanks, > Mark > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at microenh.com Tue Mar 15 15:55:58 2011 From: mark at microenh.com (Mark Erbaugh) Date: Tue, 15 Mar 2011 10:55:58 -0400 Subject: [CentralOH] wxPython / Py2Exe In-Reply-To: References: Message-ID: <715DB116-76D9-4CB1-A6FC-81368839CE0D@microenh.com> Eric, Thanks. On Mar 15, 2011, at 9:03 AM, Eric Floehr wrote: > Mark, > > The fact that you can run the same program on a clean Windows 7 install successfully seems to indicate something environmental or specific to that computer. It's odd that running from the command line doesn't generate any text. Does the app crash when you run from the command line? Are there any differences in the way you run from the command line versus what is in the shortcut icon (path, options, etc.)? I can only go on what they are telling me. The problem computer is in the Washington DC area (Beltsville, MD). The app apparently terminates the same way whether it was launched by double-clicking the icon or from the command line. We actually run the app by clicking directly on the icon for the .exe file (not a shortcut). > > The "output screen" if it's a console window, will flash briefly if there is output, and stay if the application doesn't close. But your app is closing, which then also closes the console window. This is true of any app that writes to stdout I think, I've seen it on other programs that start from a batch file, etc. > > So my suggestions if you can rebuild the app are to have a global try/except in your main loop, send the trace to a file or to the stdout, and then do a raw_input('Press any key to terminate the app") or something like that, so the app doesn't close before you've had a chance to review the error. That's a good suggestion. > -Eric > From james at atlantixeng.com Tue Mar 15 16:23:36 2011 From: james at atlantixeng.com (James -- Atlantix) Date: Tue, 15 Mar 2011 11:23:36 -0400 Subject: [CentralOH] wxPython / Py2Exe && CxFreeze && PyInstaller && IronPython Message-ID: <00c701cbe324$f504ee60$df0ecb20$@atlantixeng.com> Mark; Sorry to hear about the issues with Windows 7. I am not surprised. I have been having similar problems with PyQt/PySide conversions to .exe on Windows 7 and Vista. We have developed several commercial grade applications with PySide here at Atlantix, and getting them into .exe has been more than difficult. We have adopted two strategies: 1) CxFreeze, Py2Exe, and Pyinstaller -> Simply do not work consistently 2) We believe in PySide as the defacto GUI tool for Python (and use WxPython from time to time), however IronPython can be used to create custom .dll's or .exe's for sections of the code, and then called from your main application. In this case, it would be WxPython. 3) The major weakness of GUI apps with python is clear, and I mean clear, readable documentation about compiling GUI code into .exe with CxFreeze or Py2exe. Py2exe has so many dependencies now, particularly with GUI tools and using any types of graphics, that it is ridiculous. Hence, we made our own graphics toolkit for use in PySide and have bypassed matplotlib. Sorry for your pain. Microsoft is contributing to this greatly with side by side installations and just in time installers for Office, which will defeat win32com. I spent 6 hours on the phone with Microsoft this past fall on this issue. Summary statement: Rewrite some of your GUI with IronPython and link it to your WxPython GUI, then distribute your app with .pyc files into /Lib/site-packages. -James -------------- next part -------------- An HTML attachment was scrubbed... URL: From issac.kelly at gmail.com Tue Mar 15 18:18:22 2011 From: issac.kelly at gmail.com (Issac Kelly) Date: Tue, 15 Mar 2011 13:18:22 -0400 Subject: [CentralOH] Pluggable Django Patterns Message-ID: This video is awesome. It's by Corey Oordt, I'd say that it's really a great followup talk of creating modern reusable django apps from January. http://pycon.blip.tv/file/4882961/ Corey works at the Washington Times and you can see some of this stuff in action here: https://github.com/washingtontimes/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Tue Mar 15 21:14:53 2011 From: eric at intellovations.com (Eric Floehr) Date: Tue, 15 Mar 2011 16:14:53 -0400 Subject: [CentralOH] wxPython / Py2Exe && CxFreeze && PyInstaller && IronPython In-Reply-To: <00c701cbe324$f504ee60$df0ecb20$@atlantixeng.com> References: <00c701cbe324$f504ee60$df0ecb20$@atlantixeng.com> Message-ID: Yeah, python development has centered more on the post-desktop-client world... rapid development, services, interactivity, rather than client apps. However, I wouldn't completely write off generating executables. Have you heard of Dropbox? Their Windows, Mac, and Linux clients are all Python (using wxWindows) save for a small OS interface layer. On Windows, they use Py2Exe. This is an app that is on literally millions of Windows systems successfully. They receive more files per second than Twitter gets Tweets. Granted, the UI portion is just a small preferences GUI, but for certain use cases, Python can be used very successfully to create rock-solid clients that "just work". But it isn't necessarily right for every use case, maybe yours. I do think that Python exe packaging needs a lot of work, and it isn't always clear. But the more people contribute, including documentation, the better it will get. The other option is just to create a shell exe or shortcut, and run python directly. That's what the Dropbox Linux client (and I think Mac too?) does. The user will never know the difference, and if you only distribute the object files, you get the same protection as an exe. -Eric On Tue, Mar 15, 2011 at 11:23 AM, James -- Atlantix wrote: > Mark; > > > > Sorry to hear about the issues with Windows 7. I am not surprised. I have > been having similar problems with PyQt/PySide conversions to .exe on Windows > 7 and Vista. > > > > We have developed several commercial grade applications with PySide here at > Atlantix, and getting them into .exe has been more than difficult. > > > We have adopted two strategies: > > > > 1) CxFreeze, Py2Exe, and Pyinstaller -> Simply do not work > consistently > > 2) We believe in PySide as the defacto GUI tool for Python (and use > WxPython from time to time), however IronPython can be used to create custom > .dll?s or .exe?s for sections of the code, and then called from your main > application. In this case, it would be WxPython. > > 3) The major weakness of GUI apps with python is clear, and I mean > clear, readable documentation about compiling GUI code into .exe with > CxFreeze or Py2exe. Py2exe has so many dependencies now, particularly with > GUI tools and using any types of graphics, that it is ridiculous. Hence, we > made our own graphics toolkit for use in PySide and have bypassed > matplotlib. > > > > Sorry for your pain. Microsoft is contributing to this greatly with side by > side installations and just in time installers for Office, which will defeat > win32com. I spent 6 hours on the phone with Microsoft this past fall on this > issue. > > > > Summary statement: Rewrite some of your GUI with IronPython and link it to > your WxPython GUI, then distribute your app with .pyc files into > /Lib/site-packages. > > > > -James > > > > > > > > > > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james at atlantixeng.com Tue Mar 15 22:26:54 2011 From: james at atlantixeng.com (James -- Atlantix) Date: Tue, 15 Mar 2011 17:26:54 -0400 Subject: [CentralOH] Py2Exe and other notions Message-ID: <010101cbe357$b585b610$20912230$@atlantixeng.com> We have developed several sophisticated GUI applications at Atlantix, and getting them into .exe with Py2Exe has only been possible with "simple" applications. The main difficulty lies in the use of extension modules (Matlplotlib, etc.) incorporated into the GUI. Py2Exe is a fragmented and unfriendly program to any GUI that is more than mildly sophisticated. The web is littered with people trying to get their app to compile with Py2Exe, but it just *won't* work. As I mentioned earlier, distributing your Python GUI/modules as .pyc files into site packages and possibly obfuscating one or more of the modules as an .exe with IronPython or C# or even C is our adopted strategy for exe distribution. This is what we have found as the most workable strategy. Compiling all of your python modules into .pyc files and then installing them as a package into site-packages will work. In fact we have written a small cluster of programs to do this automatically, sort of like our own version of CxFreeze. If you want further protection or more appropriately more of a rat maze for hackers out there, take some portion of the program and compile it to an .exe, then make a system call in your main GUI to this exe. Using IronPython will allow the possibility to port existing python code in this manner. This is why we recommend it versus going the C route. In the end, people will become confused on how to hack your program on a windows platform if they have to install Microsoft .NET4.0 AND Python for example. Our current implementation of a major PySide GUI is just that as above. We did use CxFreeze to create a small .exe to call the main python program, and have two packages installed under /Lib/site-packages. The major crime of programs such as Py2Exe or CxFreeze is spending countless hours trying to get the application to work, when they will not, and all the details of these program's (CxFreeze,Py2Exe,PyInstaller) operation is not clear. So as a designer you are left with no clear path at all, and the nature of making an .exe is not rocket science. What happens is that the process of making a .exe becomes very disproportionate to the total development time. In the end, this is similar to spending $2,500 on a stick of margarine for $3 worth of cookie dough. James -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Wed Mar 16 00:38:32 2011 From: eric at intellovations.com (Eric Floehr) Date: Tue, 15 Mar 2011 19:38:32 -0400 Subject: [CentralOH] Py2Exe and other notions In-Reply-To: <010101cbe357$b585b610$20912230$@atlantixeng.com> References: <010101cbe357$b585b610$20912230$@atlantixeng.com> Message-ID: On Tue, Mar 15, 2011 at 5:26 PM, James -- Atlantix wrote: > > > This is what we have found as the most workable strategy. Compiling all of > your python modules into .pyc files and then installing them as a package > into site-packages will work. In fact we have written a small cluster of > programs to do this automatically, sort of like our own version of CxFreeze. > If you want further protection or more appropriately more of a rat maze for > hackers out there, take some portion of the program and compile it to an > .exe, then make a system call in your main GUI to this exe. Using IronPython > will allow the possibility to port existing python code in this manner. This > is why we recommend it versus going the C route. In the end, people will > become confused on how to hack your program on a windows platform if they > have to install Microsoft .NET4.0 *AND *Python for example. > That's awesome! Have you considered documenting the details of how you did it, the pitfalls that you ran into, and how you worked around them so that others who are also struggling can learn from your work? The major crime of programs such as Py2Exe or CxFreeze is spending countless > hours trying to get the application to work, when they will not, and all the > details of these program?s (CxFreeze,Py2Exe,PyInstaller) operation is not > clear. So as a designer you are left with no clear path at all, and the > nature of making an .exe is not rocket science. What happens is that the > process of making a .exe becomes very disproportionate to the total > development time. In the end, this is similar to spending $2,500 on a stick > of margarine for $3 worth of cookie dough. > "Crime" is a pretty strong word. Maybe Python bundling to an exe doesn't work well in your application. But Python exists only because of its community. Its only as good as it is through the volunteer contributions of many developers, most of whom are doing because they are solving their own problems or because they want to help make a project or the language better and easier for others to use. If you've reached out to the maintainers of py2exe and cxfreeze and others, and you've asked the communities of those tools (via mailing lists, etc.) with your questions, and with their help still have not been able to solve your problems, you have three choices. The first is find another language or tool. The second is to work with the community and the maintainers to improve the tool or product and contribute your work back to the community. The third is to roll your own (which it sounds like you have started to do). And depending on how you feel, contribute it to the Python community, keep it to yourself, or try to sell it. I'm not trying to admonish you, you have a right to be frustrated when something doesn't work as easily or as quickly as you want. I am just trying to point out that unlike Microsoft software, where usually your ONLY option is to complain, with community-created software like Python and it's universe of open-source libraries and tools, there are far more productive options to consider. And it sounds like you are considering them, so, awesome! :-D Cheers, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From morgan.goose at gmail.com Fri Mar 18 15:08:45 2011 From: morgan.goose at gmail.com (Morgan Goose) Date: Fri, 18 Mar 2011 10:08:45 -0400 Subject: [CentralOH] Py2Exe and other notions In-Reply-To: <010101cbe357$b585b610$20912230$@atlantixeng.com> References: <010101cbe357$b585b610$20912230$@atlantixeng.com> Message-ID: <20110318140845.GD22451@grumpy.morgan-dyn-o-saur.com> Just to make mention, a pyc file is plain text bytecode, and reversible. So if you just want your libraries unreadable, then yeah making them into an exe and accesses it like one would a complied C lib is useful, but if you main biz code is still in pyc, anyone can get at it. It's same with java in this manner too. goose On Tue, Mar 15, 2011 at 05:26:54PM -0400, James -- Atlantix wrote: > ? > > We have developed several sophisticated GUI applications at Atlantix, and > getting them into .exe with Py2Exe has only been possible with ?simple? > applications. The main difficulty lies in the use of extension modules > (Matlplotlib, etc.) incorporated into the GUI. Py2Exe is a fragmented and > unfriendly program to any GUI that is more than mildly sophisticated. The > web is littered with people trying to get their app to compile with > Py2Exe, but it just *won?t* work. > > ? > > As I mentioned earlier, distributing your Python GUI/modules as .pyc files > into site packages and possibly obfuscating one or more of the modules as > an .exe with IronPython or C# or even C is our adopted strategy for exe > distribution. > > > This is what we have found as the most workable strategy. Compiling all of > your python modules into .pyc files and then installing them as a package > into site-packages will work. In fact we have written a small cluster of > programs to do this automatically, sort of like our own version of > CxFreeze. If you want further protection or more appropriately more of a > rat maze for hackers out there, take some portion of the program and > compile it to an .exe, then make a system call in your main GUI to this > exe. Using IronPython will allow the possibility to port existing python > code in this manner. This is why we recommend it versus going the C route. > In the end, people will become confused on how to hack your program on a > windows platform if they have to install Microsoft .NET4.0 AND Python for > example. > > > Our current implementation of a major PySide GUI is just that as above. We > did use CxFreeze to create a small .exe to call the main python program, > and have two packages installed under /Lib/site-packages. > > ? > > The major crime of programs such as Py2Exe or CxFreeze is spending > countless hours trying to get the application to work, when they will not, > and all the details of these program?s (CxFreeze,Py2Exe,PyInstaller) > operation is not clear. So as a designer you are left with no clear path > at all, and the nature of making an .exe is not rocket science. What > happens is that the process of making a .exe becomes very disproportionate > to the total development time. In the end, this is similar to spending > $2,500 on a stick of margarine for $3 worth of cookie dough. > > ? > > James > > ? > > ? > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh ---end quoted text--- From james at atlantixeng.com Sun Mar 20 20:39:41 2011 From: james at atlantixeng.com (James -- Atlantix) Date: Sun, 20 Mar 2011 15:39:41 -0400 Subject: [CentralOH] Py2Exe and Other Notions -- Continued Message-ID: <000001cbe736$8f8db470$aea91d50$@com> Goose wrote: """ Just to make mention, a pyc file is plain text bytecode, and reversible. So if you just want your libraries unreadable, then yeah making them into an exe and accesses it like one would a complied C lib is useful, but if you main biz code is still in pyc, anyone can get at it. It's same with java in this manner too. """ As I mentioned before, the use of IronPython or similar language to compile a "sub-section" of the Python distribution that is primarily in .pyc files will obscure the ease of reverse engineering the design. The most standard of tools will take the .pyc files back to .py files. The primary obstacle to the person who is hacking the program would be substantial threading with the model-view-controller paradigm, and custom Libraries that get instantiated as sub-classes. We have found this to be the case, for example, that subclassing many of the widgets in PySide/PyQt and then assigning alternate functions to them (particularly the wide range of controls available) will confuse the subject. In addition, making the controller truly a controller also confuses the subject. The disadvantage to the designer is that with this paradigm the model part of model-view-controller tends to be rather well capable of standing on its own, so that part of the code becomes easy to decipher. As IronClad progresses, as least for Windows platforms IronPython and C# subclassing Python routines seem to be a more stable and secure method to protect long hours and $$$$ worth of investment in desktop GUI apps written with Python. After all, spending 20 to 30 K worth of development for a moderate desktop app and then letting it so easily be exposed with .pyc files is close to the proverbial giving away the farm. James -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Mon Mar 21 22:36:05 2011 From: eric at intellovations.com (Eric Floehr) Date: Mon, 21 Mar 2011 17:36:05 -0400 Subject: [CentralOH] Py2Exe and Other Notions -- Continued In-Reply-To: <000001cbe736$8f8db470$aea91d50$@com> References: <000001cbe736$8f8db470$aea91d50$@com> Message-ID: James said: > As I mentioned before, the use of IronPython or similar language to compile > a "sub-section" of the Python distribution that is primarily in .pyc files > will obscure the ease of reverse engineering the design. The most standard > of tools will take the .pyc files back to .py files. > .NET assemblies, regardless of language (C#, IronPython, etc.) compile down to bytecode (called MSIL) which is roughly equivalent to Java class files or Python .pyc files. Just like Java and Python, .NET "compiled" code only gets converted to machine code at execution time. MSIL is just as easily decompiled as Java or Python bytecode. > The primary obstacle to the person who is hacking the program would be > substantial threading with the model-view-controller paradigm, and custom > Libraries that get instantiated as sub-classes. We have found this to be the > case, for example, that subclassing many of the widgets in PySide/PyQt and > then assigning alternate functions to them (particularly the wide range of > controls available) will confuse the subject. In addition, making the > controller truly a controller also confuses the subject. The disadvantage to > the designer is that with this paradigm the model part of > model-view-controller tends to be rather well capable of standing on its > own, so that part of the code becomes easy to decipher. > > > > As IronClad progresses, as least for Windows platforms IronPython and C# > subclassing Python routines seem to be a more stable and secure method to > protect long hours and $$$$ worth of investment in desktop GUI apps written > with Python. After all, spending 20 to 30 K worth of development for a > moderate desktop app and then letting it so easily be exposed with .pyc > files is close to the proverbial giving away the farm. > I'm certainly not an expert, but I have worked at two software companies producing software that was sold in the six-figures per seat. Believe me when I say that any determined hacker will get your code if they want it, but that determined hackers are rare. At most they will hack your registration code so they can pirate the software. Even an encrypted and obfuscated section of the code was deciphered by pulling the machine code from memory. The thing is, they generally don't care how your program is written. For most customers, it's still cheaper and easier to buy your product than to hack it. As for competitors, your only real recourse is legal. Make sure you have a strong license that disallows reverse engineering or decompiling, and a patent if it is a novel process. Of course defending the license or patent in court still requires a lot of money. Often it's easiest to just stay ahead of the competition in the marketplace though better sales and continuous innovation. Ideas cannot be protected (i.e. everyone can sell a hamburger). Cheers, Eric > > James > > > > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james at atlantixeng.com Tue Mar 22 15:47:57 2011 From: james at atlantixeng.com (James -- Atlantix) Date: Tue, 22 Mar 2011 10:47:57 -0400 Subject: [CentralOH] .Pyc files vs .Net reflection Message-ID: <000b01cbe8a0$22bc0570$68341050$@atlantixeng.com> Eric wrote: """.NET assemblies, regardless of language (C#, IronPython, etc.) compile down to bytecode (called MSIL) which is roughly equivalent to Java class files or Python .pyc files. Just like Java and Python, .NET "compiled" code only gets converted to machine code at execution time. MSIL is just as easily decompiled as Java or Python bytecode. """ The unfortunate thing is the that the .Net reflection tool from Redgate is the #1 downloaded tool in this area, http://www.reflector.net/ and the MSIL language is highly influenced by C# . The decompile of a .exe in the .net will yield C# code although redgate says that they can produce C#, VB, or the IL itself. So IronPython code will not be "brought" back to life with this tool, albeit it would be interesting to see the C# code produce by the decompile process from IronPython. Theoretically one would have a program that would compile back to the same function. One of the complexity strings that is possible as a barrier is to create to reverse engineering a python based GUI is to create a .net shell. This is an extension of the idea where I was mentioning compiling sections of the GUI code to hide it. This now seems a very real possibility. Specifically, the .net shell (in my case) is a C# program that 1) is the gui that starts the main PySide GUI 2) has some database integration and thus creates a thread between it and the PySide Gui 3) calls a crytopgraphic key either residing at the PC or via the net 4) May call IronPython or even F# code if need be for specific "helper" functions Despite all the turmoil at Nokia, PySide released its official version 1.0 around March 10 of this year, and there is a google summer of code program with Pyside, and it has evolved a bit over the PyQt implementation of Qt to Python. Enthought is also migrating to PySide. It seems as if there is some hidden momentum with PySide, and it is a very good tool to use. It does appear now that a separate language shell with some threads that integrate to the main program will add a degree of complexity to the reversal process. James -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at microenh.com Tue Mar 29 18:47:55 2011 From: mark at microenh.com (Mark Erbaugh) Date: Tue, 29 Mar 2011 12:47:55 -0400 Subject: [CentralOH] Python Based Websites Message-ID: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> I have a client who provides business training simulations. These are run as short term competitions among teams of competitors. Each team represents a company competing in the simulated marketplace. The competitors receive information about current conditions for a business quarter and make decisions (buy materials, hire employees, etc) for the next quarter. At the end of each round (a simulated business quarter), the decisions from each team are collected, processed and compared with decisions from other teams, performance is calculated and new quarterly data is provided to the competitors for the next round. This is usually done for 8 or so rounds (quarters) over either a two or three day competition or over the course of an academic term. When I got involved with the project, the data was transferred among the participants using USB memory sticks. The participants use a proprietary C++ program that allowed them to view the data and make decisions. The original developer had put some hooks in the code to transfer data via the web, but never got that working. A web development company spent a year trying to get a web-based solution working and failed. I was able to get a Python-based (webpy) server working just a few weeks after figuring out the hooks in the original program. The current goal is to move the entire project to web-based, just using browsers for the client side. Despite my success (or maybe because it wasn't a perfect solution), the client is not interested in pursuing a Python solution, which is what I'd like. He still sees Python as a "toy" language compared to C++. Also, although he is not a programmer, he understands a little about C++, but seems unwilling to learn anything about Python (in contrast to another client, who although he doesn't know Python, found he can read the code well enough to make sense of it and suggest where it wasn't working properly). Another concern is security. The calculations done between rounds is what gives my client an edge over the competition and he doesn't want that to get out. His concern (and I partly agree) is that since Python is interpreted, it would be easier to reverse engineer than something compiled. One of the scenarios of concern is that we would install the server software on a client's network for a single competition and that an unscrupulous client would reverse engineer things to run additional, unapproved competitions. Are there some examples of Python (DJango, TG, etc) websites out there that have a dynamic user experience that I could use to interest this client in a Python solution? Are there ways to address the security concerns? Thanks, Mark From nick.albright at gmail.com Tue Mar 29 20:45:33 2011 From: nick.albright at gmail.com (Nick Albright) Date: Tue, 29 Mar 2011 14:45:33 -0400 Subject: [CentralOH] Python Based Websites In-Reply-To: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> References: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> Message-ID: Not website per se, but Python is used in one of the most successful MMOs out there, Eve Online: http://www.tentonhammer.com/node/10044 I thought one of the biggest hosting providers (Rackspace) out there used it as the foundation for their new ticketing system, but I can't seem to find a reference for that. Just this: http://www.python.org/about/success/rackspace/ And lastly, the Washing Post uses Python/Django. From: http://www.djangobook.com/en/beta/chapter01/ The Washington Post?s Web site, washingtonpost.com, uses Django for database projects and various bits of functionality across the site. Some examples: - The U.S. Congress votes database, http://projects.washingtonpost.com/congress/ 1 - The staff directory and functionality that lets readers contact reporters, appearing as links on most article pages. - Faces of the Fallen, http://projects.washingtonpost.com/fallen/ That's all I got! -Nick On Tue, Mar 29, 2011 at 12:47 PM, Mark Erbaugh wrote: > I have a client who provides business training simulations. These are run > as short term competitions among teams of competitors. Each team represents > a company competing in the simulated marketplace. The competitors receive > information about current conditions for a business quarter and make > decisions (buy materials, hire employees, etc) for the next quarter. At the > end of each round (a simulated business quarter), the decisions from each > team are collected, processed and compared with decisions from other teams, > performance is calculated and new quarterly data is provided to the > competitors for the next round. This is usually done for 8 or so rounds > (quarters) over either a two or three day competition or over the course of > an academic term. > > When I got involved with the project, the data was transferred among the > participants using USB memory sticks. The participants use a proprietary C++ > program that allowed them to view the data and make decisions. The original > developer had put some hooks in the code to transfer data via the web, but > never got that working. A web development company spent a year trying to get > a web-based solution working and failed. I was able to get a Python-based > (webpy) server working just a few weeks after figuring out the hooks in the > original program. > > The current goal is to move the entire project to web-based, just using > browsers for the client side. Despite my success (or maybe because it wasn't > a perfect solution), the client is not interested in pursuing a Python > solution, which is what I'd like. He still sees Python as a "toy" language > compared to C++. Also, although he is not a programmer, he understands a > little about C++, but seems unwilling to learn anything about Python (in > contrast to another client, who although he doesn't know Python, found he > can read the code well enough to make sense of it and suggest where it > wasn't working properly). > > Another concern is security. The calculations done between rounds is what > gives my client an edge over the competition and he doesn't want that to get > out. His concern (and I partly agree) is that since Python is interpreted, > it would be easier to reverse engineer than something compiled. One of the > scenarios of concern is that we would install the server software on a > client's network for a single competition and that an unscrupulous client > would reverse engineer things to run additional, unapproved competitions. > > Are there some examples of Python (DJango, TG, etc) websites out there that > have a dynamic user experience that I could use to interest this client in a > Python solution? > > Are there ways to address the security concerns? > > > Thanks, > Mark > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From godber at gmail.com Tue Mar 29 20:46:13 2011 From: godber at gmail.com (Austin Godber) Date: Tue, 29 Mar 2011 14:46:13 -0400 Subject: [CentralOH] Python Based Websites In-Reply-To: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> References: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> Message-ID: Would it be acceptable to leave the "proprietary" component in C++ and just wrap that in Python. He maintains his speed and security but gets to do the web stuff in python, where its going to be a bit easier. Though security wise, anyone with access to the code would implicitly have access to the compiled module and be able to wrap it themselves in exactly the same way. Though I imagine he is most interested in just protecting the algorithm since C++ programs can be copied as well. See this example for embedding a C/C++ module in a python program. http://docs.python.org/extending/extending.html#a-simple-example Austin On Tue, Mar 29, 2011 at 12:47 PM, Mark Erbaugh wrote: > I have a client who provides business training simulations. These are run > as short term competitions among teams of competitors. Each team represents > a company competing in the simulated marketplace. The competitors receive > information about current conditions for a business quarter and make > decisions (buy materials, hire employees, etc) for the next quarter. At the > end of each round (a simulated business quarter), the decisions from each > team are collected, processed and compared with decisions from other teams, > performance is calculated and new quarterly data is provided to the > competitors for the next round. This is usually done for 8 or so rounds > (quarters) over either a two or three day competition or over the course of > an academic term. > > When I got involved with the project, the data was transferred among the > participants using USB memory sticks. The participants use a proprietary C++ > program that allowed them to view the data and make decisions. The original > developer had put some hooks in the code to transfer data via the web, but > never got that working. A web development company spent a year trying to get > a web-based solution working and failed. I was able to get a Python-based > (webpy) server working just a few weeks after figuring out the hooks in the > original program. > > The current goal is to move the entire project to web-based, just using > browsers for the client side. Despite my success (or maybe because it wasn't > a perfect solution), the client is not interested in pursuing a Python > solution, which is what I'd like. He still sees Python as a "toy" language > compared to C++. Also, although he is not a programmer, he understands a > little about C++, but seems unwilling to learn anything about Python (in > contrast to another client, who although he doesn't know Python, found he > can read the code well enough to make sense of it and suggest where it > wasn't working properly). > > Another concern is security. The calculations done between rounds is what > gives my client an edge over the competition and he doesn't want that to get > out. His concern (and I partly agree) is that since Python is interpreted, > it would be easier to reverse engineer than something compiled. One of the > scenarios of concern is that we would install the server software on a > client's network for a single competition and that an unscrupulous client > would reverse engineer things to run additional, unapproved competitions. > > Are there some examples of Python (DJango, TG, etc) websites out there that > have a dynamic user experience that I could use to interest this client in a > Python solution? > > Are there ways to address the security concerns? > > > Thanks, > Mark > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From godber at gmail.com Tue Mar 29 20:57:45 2011 From: godber at gmail.com (Austin Godber) Date: Tue, 29 Mar 2011 14:57:45 -0400 Subject: [CentralOH] Python Based Websites In-Reply-To: References: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> Message-ID: Google uses python for its help/support system ... for instance this URL: http://maps.google.com/support/bin/answer.py?answer=7060 Disqus is a django app, it has lots of users, see slide 7 of their pycon talk this year, 500m visitors, 25,000 req/s: http://ontwik.com/python/pycon-2011-disqus-serving-400-million-people-with-python/ http://disqus.com/ Austin On Tue, Mar 29, 2011 at 2:45 PM, Nick Albright wrote: > Not website per se, but Python is used in one of the most successful MMOs > out there, Eve Online: http://www.tentonhammer.com/node/10044 > > I thought one of the biggest > hosting providers (Rackspace) out there used it as the foundation for their > new ticketing system, but I can't seem to find a reference for that. Just > this: http://www.python.org/about/success/rackspace/ > > > And lastly, the Washing Post uses Python/Django. From: > http://www.djangobook.com/en/beta/chapter01/ > > The Washington Post?s Web site, washingtonpost.com, uses Django for > database projects and various bits of functionality across the site. Some > examples: > > > - The U.S. Congress votes database, > http://projects.washingtonpost.com/congress/ > 1 > - The staff directory and functionality that lets readers contact > reporters, appearing as links on most article pages. > - Faces of the Fallen, http://projects.washingtonpost.com/fallen/ > > That's all I got! > -Nick > > On Tue, Mar 29, 2011 at 12:47 PM, Mark Erbaugh wrote: > >> I have a client who provides business training simulations. These are run >> as short term competitions among teams of competitors. Each team represents >> a company competing in the simulated marketplace. The competitors receive >> information about current conditions for a business quarter and make >> decisions (buy materials, hire employees, etc) for the next quarter. At the >> end of each round (a simulated business quarter), the decisions from each >> team are collected, processed and compared with decisions from other teams, >> performance is calculated and new quarterly data is provided to the >> competitors for the next round. This is usually done for 8 or so rounds >> (quarters) over either a two or three day competition or over the course of >> an academic term. >> >> When I got involved with the project, the data was transferred among the >> participants using USB memory sticks. The participants use a proprietary C++ >> program that allowed them to view the data and make decisions. The original >> developer had put some hooks in the code to transfer data via the web, but >> never got that working. A web development company spent a year trying to get >> a web-based solution working and failed. I was able to get a Python-based >> (webpy) server working just a few weeks after figuring out the hooks in the >> original program. >> >> The current goal is to move the entire project to web-based, just using >> browsers for the client side. Despite my success (or maybe because it wasn't >> a perfect solution), the client is not interested in pursuing a Python >> solution, which is what I'd like. He still sees Python as a "toy" language >> compared to C++. Also, although he is not a programmer, he understands a >> little about C++, but seems unwilling to learn anything about Python (in >> contrast to another client, who although he doesn't know Python, found he >> can read the code well enough to make sense of it and suggest where it >> wasn't working properly). >> >> Another concern is security. The calculations done between rounds is what >> gives my client an edge over the competition and he doesn't want that to get >> out. His concern (and I partly agree) is that since Python is interpreted, >> it would be easier to reverse engineer than something compiled. One of the >> scenarios of concern is that we would install the server software on a >> client's network for a single competition and that an unscrupulous client >> would reverse engineer things to run additional, unapproved competitions. >> >> Are there some examples of Python (DJango, TG, etc) websites out there >> that have a dynamic user experience that I could use to interest this client >> in a Python solution? >> >> Are there ways to address the security concerns? >> >> >> Thanks, >> Mark >> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> http://mail.python.org/mailman/listinfo/centraloh >> > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From godber at gmail.com Tue Mar 29 21:04:30 2011 From: godber at gmail.com (Austin Godber) Date: Tue, 29 Mar 2011 15:04:30 -0400 Subject: [CentralOH] Python Based Websites In-Reply-To: References: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> Message-ID: Actually SWIG might be closer to what you want, rather than "Extending Python". I think SWIG is better suited to interfacing with an existing code base. http://www.swig.org/tutorial.html Does anyone do this? I used swig once in ruby for something somewhat like this, and it worked fine. I am kinda getting the feeling I am overlooking something. Austin On Tue, Mar 29, 2011 at 2:46 PM, Austin Godber wrote: > Would it be acceptable to leave the "proprietary" component in C++ and just > wrap that in Python. He maintains his speed and security but gets to do the > web stuff in python, where its going to be a bit easier. Though security > wise, anyone with access to the code would implicitly have access to the > compiled module and be able to wrap it themselves in exactly the same way. > Though I imagine he is most interested in just protecting the algorithm > since C++ programs can be copied as well. > > See this example for embedding a C/C++ module in a python program. > > http://docs.python.org/extending/extending.html#a-simple-example > > Austin > > > > On Tue, Mar 29, 2011 at 12:47 PM, Mark Erbaugh wrote: > >> I have a client who provides business training simulations. These are run >> as short term competitions among teams of competitors. Each team represents >> a company competing in the simulated marketplace. The competitors receive >> information about current conditions for a business quarter and make >> decisions (buy materials, hire employees, etc) for the next quarter. At the >> end of each round (a simulated business quarter), the decisions from each >> team are collected, processed and compared with decisions from other teams, >> performance is calculated and new quarterly data is provided to the >> competitors for the next round. This is usually done for 8 or so rounds >> (quarters) over either a two or three day competition or over the course of >> an academic term. >> >> When I got involved with the project, the data was transferred among the >> participants using USB memory sticks. The participants use a proprietary C++ >> program that allowed them to view the data and make decisions. The original >> developer had put some hooks in the code to transfer data via the web, but >> never got that working. A web development company spent a year trying to get >> a web-based solution working and failed. I was able to get a Python-based >> (webpy) server working just a few weeks after figuring out the hooks in the >> original program. >> >> The current goal is to move the entire project to web-based, just using >> browsers for the client side. Despite my success (or maybe because it wasn't >> a perfect solution), the client is not interested in pursuing a Python >> solution, which is what I'd like. He still sees Python as a "toy" language >> compared to C++. Also, although he is not a programmer, he understands a >> little about C++, but seems unwilling to learn anything about Python (in >> contrast to another client, who although he doesn't know Python, found he >> can read the code well enough to make sense of it and suggest where it >> wasn't working properly). >> >> Another concern is security. The calculations done between rounds is what >> gives my client an edge over the competition and he doesn't want that to get >> out. His concern (and I partly agree) is that since Python is interpreted, >> it would be easier to reverse engineer than something compiled. One of the >> scenarios of concern is that we would install the server software on a >> client's network for a single competition and that an unscrupulous client >> would reverse engineer things to run additional, unapproved competitions. >> >> Are there some examples of Python (DJango, TG, etc) websites out there >> that have a dynamic user experience that I could use to interest this client >> in a Python solution? >> >> Are there ways to address the security concerns? >> >> >> Thanks, >> Mark >> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> http://mail.python.org/mailman/listinfo/centraloh >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From learning24x7 at gmail.com Tue Mar 29 21:04:14 2011 From: learning24x7 at gmail.com (Srini) Date: Tue, 29 Mar 2011 15:04:14 -0400 Subject: [CentralOH] Pictures from our get together last night Message-ID: -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: IMAG0249.jpg Type: image/jpeg Size: 1376620 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: IMAG0248.jpg Type: image/jpeg Size: 1484041 bytes Desc: not available URL: From james at atlantixeng.com Tue Mar 29 21:48:42 2011 From: james at atlantixeng.com (James -- Atlantix) Date: Tue, 29 Mar 2011 15:48:42 -0400 Subject: [CentralOH] Python and Cython Message-ID: <00fa01cbee4a$4f3057f0$ed9107d0$@atlantixeng.com> Relative to some of the earlier comments today, one suggestion for securing programs written in Python is to use either Pyrex or Cython. We here have come to the conclusion that this is the best method for "securing" sections of our GUIs. One can disassemble .pyd files into assembly code, but this is a far better situation that getting .py files back from .pyc. If anyone out there has used Pyrex or Cython extensively, would like to know if you ever disassembled a compiled .pyd file. Thanks, James -------------- next part -------------- An HTML attachment was scrubbed... URL: From douglas.m.stanley at gmail.com Wed Mar 30 18:25:36 2011 From: douglas.m.stanley at gmail.com (Douglas Stanley) Date: Wed, 30 Mar 2011 12:25:36 -0400 Subject: [CentralOH] Python Based Websites In-Reply-To: References: <557B5C02-F471-45EE-8EB7-E94699DFA052@microenh.com> Message-ID: What about the fact that google employs the python bdfl? I'd say that's pretty good evidence that they trust it... Doug On Tue, Mar 29, 2011 at 3:04 PM, Austin Godber wrote: > Actually SWIG might be closer to what you want, rather than "Extending > Python". ?I think SWIG is better suited to interfacing with an existing code > base. > http://www.swig.org/tutorial.html > > Does anyone do this? ?I used swig once in ruby for something somewhat like > this, and it worked fine. ?I am kinda getting the feeling I am overlooking > something. > Austin > On Tue, Mar 29, 2011 at 2:46 PM, Austin Godber wrote: >> >> Would it be?acceptable?to leave the "proprietary" component in C++ and >> just wrap that in Python. ?He maintains his speed and security but gets to >> do the web stuff in python, where its going to be a bit easier. ?Though >> security wise, anyone with access to the code would implicitly have access >> to the compiled module and be able to wrap it themselves in exactly the same >> way. ?Though I imagine he is most interested in just protecting the >> algorithm since C++ programs can be copied as well. >> See this example for embedding a C/C++ module in a python program. >> http://docs.python.org/extending/extending.html#a-simple-example >> >> Austin >> >> >> On Tue, Mar 29, 2011 at 12:47 PM, Mark Erbaugh wrote: >>> >>> I have a client who provides business training simulations. These are run >>> as short term competitions among teams of competitors. Each team represents >>> a company competing in the simulated marketplace. The competitors receive >>> information about current conditions for a business quarter and make >>> decisions (buy materials, hire employees, etc) for the next quarter. At the >>> end of each round (a simulated business quarter), the decisions from each >>> team are collected, processed and compared with decisions from other teams, >>> performance is calculated and new quarterly data is provided to the >>> competitors for the next round. This is usually done for 8 or so rounds >>> (quarters) over either a two or three day competition or over the course of >>> an academic term. >>> >>> When I got involved with the project, the data was transferred among the >>> participants using USB memory sticks. The participants use a proprietary C++ >>> program that allowed them to view the data and make decisions. The original >>> developer had put some hooks in the code to transfer data via the web, but >>> never got that working. A web development company spent a year trying to get >>> a web-based solution working and failed. I was able to get a Python-based >>> (webpy) server working just a few weeks after figuring out the hooks in the >>> original program. >>> >>> The current goal is to move the entire project to web-based, just using >>> browsers for the client side. Despite my success (or maybe because it wasn't >>> a perfect solution), the client is not interested in pursuing a Python >>> solution, which is what I'd like. He still sees Python as a "toy" language >>> compared to C++. Also, although he is not a programmer, he understands a >>> little about C++, but seems unwilling to learn anything about Python (in >>> contrast to another client, who although he doesn't know Python, found he >>> can read the code well enough to make sense of it and suggest where it >>> wasn't working properly). >>> >>> Another concern is security. The calculations done between rounds is what >>> gives my client an edge over the competition and he doesn't want that to get >>> out. His concern (and I partly agree) is that since Python is interpreted, >>> it would be easier to reverse engineer than something compiled. ?One of the >>> scenarios of concern is that we would install the server software on a >>> client's network for a single competition and that an unscrupulous client >>> would reverse engineer things to run additional, unapproved competitions. >>> >>> Are there some examples of Python (DJango, TG, etc) websites out there >>> that have a dynamic user experience that I could use to interest this client >>> in a Python solution? >>> >>> Are there ways to address the security concerns? >>> >>> >>> Thanks, >>> Mark >>> >>> >>> _______________________________________________ >>> CentralOH mailing list >>> CentralOH at python.org >>> http://mail.python.org/mailman/listinfo/centraloh >> > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > http://mail.python.org/mailman/listinfo/centraloh > > -- Please avoid sending me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html