From eric at intellovations.com Thu May 7 15:07:30 2015 From: eric at intellovations.com (Eric Floehr) Date: Thu, 7 May 2015 09:07:30 -0400 Subject: [CentralOH] Local software firm expanding Message-ID: This article about local software firm Aver Informatics expanding and moving to the entire 14th floor of Huntington Center appeared in today's Columbus Business First. Aver Informatics software developers write a lot of Python, and a few employees have spoken at PyOhio in the past. It's always great to hear good stories about technology companies doing well in Columbus! http://www.bizjournals.com/columbus/news/2015/05/06/software-firm-taking-entire-floor-at-huntington.html Congrats to Aver and to Columbus! -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Thu May 7 23:00:46 2015 From: eric at intellovations.com (Eric Floehr) Date: Thu, 7 May 2015 17:00:46 -0400 Subject: [CentralOH] Github now supports IPython Notebooks directly Message-ID: Github as of today will render ipynb (ie. Jupyter, IPython Notebook) files directly: https://github.com/blog/1995-github-jupyter-notebooks-3 My experience today is it's a little slow and touchy, but my guess it that they'll fix those things pretty quickly. Pretty awesome! -------------- next part -------------- An HTML attachment was scrubbed... URL: From godber at gmail.com Thu May 7 23:04:19 2015 From: godber at gmail.com (Austin Godber) Date: Thu, 7 May 2015 14:04:19 -0700 Subject: [CentralOH] Github now supports IPython Notebooks directly In-Reply-To: References: Message-ID: Hooray! On Thu, May 7, 2015 at 2:00 PM, Eric Floehr wrote: > Github as of today will render ipynb (ie. Jupyter, IPython Notebook) files > directly: > > https://github.com/blog/1995-github-jupyter-notebooks-3 > > My experience today is it's a little slow and touchy, but my guess it that > they'll fix those things pretty quickly. > > Pretty awesome! > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrewkubera at gmail.com Thu May 7 23:17:23 2015 From: andrewkubera at gmail.com (Andrew Kubera) Date: Thu, 7 May 2015 17:17:23 -0400 Subject: [CentralOH] Github now supports IPython Notebooks directly In-Reply-To: References: Message-ID: That?s really neat! I?ll take this opportunity to remind people about my ?Intro to C++? presentation I made with iPython a few months ago. Github renders it fine. Hmm, now I guess I can finally convert all my README.md files to README.ipynb, right? Living the dream. -Andrew On May 7, 2015, at 5:04 PM, Austin Godber wrote: > Hooray! > > > On Thu, May 7, 2015 at 2:00 PM, Eric Floehr wrote: > Github as of today will render ipynb (ie. Jupyter, IPython Notebook) files directly: > > https://github.com/blog/1995-github-jupyter-notebooks-3 > > My experience today is it's a little slow and touchy, but my guess it that they'll fix those things pretty quickly. > > Pretty awesome! > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdsantiagojr at gmail.com Thu May 7 23:32:45 2015 From: jdsantiagojr at gmail.com (John Santiago) Date: Thu, 7 May 2015 17:32:45 -0400 Subject: [CentralOH] Github now supports IPython Notebooks directly In-Reply-To: References: Message-ID: Wow that is great. On May 7, 2015 5:01 PM, "Eric Floehr" wrote: > Github as of today will render ipynb (ie. Jupyter, IPython Notebook) files > directly: > > https://github.com/blog/1995-github-jupyter-notebooks-3 > > My experience today is it's a little slow and touchy, but my guess it that > they'll fix those things pretty quickly. > > Pretty awesome! > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Sun May 10 19:50:21 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Sun, 10 May 2015 13:50:21 -0400 Subject: [CentralOH] =?utf-8?q?2015-05-10_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gUGV0ZXIgTm9ydmlnIFN1ZG9rdTsgdG11eCBiYXNo?= =?utf-8?q?_emacs_pylint_tdd_wingide_refactoring_zmm_G=C3=B6del=2C_Escher?= =?utf-8?q?=2C_Bach_mastication_rice_jekyllrb_rst_Der_Lauf_Der_Dinge?= Message-ID: <20150510135021.39413ac0.jep200404@columbus.rr.com> wp: prefix means Wikipedia To get good answers, consider following the advice in the links below. http://catb.org/~esr/faqs/smart-questions.html http://web.archive.org/web/20090627155454/www.greenend.org.uk/rjk/2000/06/14/quoting.html presentations refactoring cohpy & pyohio refactoring data seeing how people work wingide emacs pylint tdd tmux, bash, editor, compile, lint f='foo.py';while true; do ls -l "$f";pylint "$f" | head -`expr $LINES - 5`;inotify -e modify "$f";done f='foo.py';while true; do ls -l "$f";pylint "$f" | head -`expr $LINES - 5`;wait 5;done Have you stopped beating your wife? wp:Mu (negative) May I borrow your pen? wp:Zen and the Art of Motorcycle Maintenance wp:Robert M. Pirsig wp:G?del, Escher, Bach wp:G?del's incompleteness theorems wp:BLEVE http://gis.washington.edu/phurvitz/outgoing/bustagut/Non-SlanderousPoliticalSmearSpeech.htm Peter Norvig Principles of Artificial Intellegence wp:Peter Norvig wrote sudoku solver lisp now python http://norvig.com/ http://norvig.com/sudoku.html playing with Peter Norvig's Sudoku solver. Some of Peter's code is hard to understand (especially _why_ he does something) Peter's version is much much faster than http://realmike.org/blog/ wp:BOFH wp:cluestick wp:rice wp:Amylopectin wp:Amylose wp:glycemic index https://duckduckgo.com/html/?q=rice+glycemic+index+jasmine http://www.dietandfitnesstoday.com/glycemicIndexDetails.php?id=1268 Compare jasmine rice to Karo syrup Sona Masoori ?? ??? sticky rice ? ?? ? ?? http://jekyllrb.com/ wp:reStructuredText wp:Die Antwoord fischli weiss 1987 wp:Der Lauf Der Dinge From eric at intellovations.com Sun May 10 20:50:23 2015 From: eric at intellovations.com (Eric Floehr) Date: Sun, 10 May 2015 14:50:23 -0400 Subject: [CentralOH] Python and Rust Message-ID: At the last monthly meeting, Raymond mentioned that The Columbus Rust Society was planning a Rust 1.0 Release party May 15 at Pillar (though the meetup says no location yet, so it might not be Pillar). The details are here: http://www.meetup.com/columbus-rs/events/222044818/ If you are interested in hooking your Python code to Rust code instead of C, there was a talk at PyCon this year by Dan Callahan called "My Python is a little Rust-y" that talked about how to call Rust functions from Python: https://www.youtube.com/watch?v=3CwJ0MH-4MA Cheers, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From jdsantiagojr at gmail.com Sun May 10 20:54:01 2015 From: jdsantiagojr at gmail.com (John Santiago) Date: Sun, 10 May 2015 14:54:01 -0400 Subject: [CentralOH] Python and Rust In-Reply-To: References: Message-ID: Thanks. I have been looking into embedded programming and looks like Rust could possibly replace c/cpp. On May 10, 2015 2:51 PM, "Eric Floehr" wrote: > At the last monthly meeting, Raymond mentioned that The Columbus Rust > Society was planning a Rust 1.0 Release party May 15 at Pillar (though the > meetup says no location yet, so it might not be Pillar). The details are > here: > > http://www.meetup.com/columbus-rs/events/222044818/ > > If you are interested in hooking your Python code to Rust code instead of > C, there was a talk at PyCon this year by Dan Callahan called "My Python is > a little Rust-y" that talked about how to call Rust functions from Python: > > https://www.youtube.com/watch?v=3CwJ0MH-4MA > > Cheers, > Eric > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kurtis.mullins at gmail.com Tue May 12 16:11:23 2015 From: kurtis.mullins at gmail.com (Kurtis Mullins) Date: Tue, 12 May 2015 10:11:23 -0400 Subject: [CentralOH] Python and Rust In-Reply-To: References: Message-ID: Hey guys and girls, Polling for opinions here. I watched the Rust video from PyCon about a week ago. I work with a handful of people who commonly attend (and some speak) at PyCon. I also work with people who are big "Go" people. This was really the first time I've come across Rust. It had some cool things going for it. I was also surprised to see it backed by Mozilla. What's the benefits of using Rust over Go? I feel like they were both sort of created to solve the same problem. I'm not intending this to be a flame war -- I am just genuinely curious how/why Rust is taking off so successfully. Thanks! On Sun, May 10, 2015 at 2:54 PM, John Santiago wrote: > Thanks. I have been looking into embedded programming and looks like Rust > could possibly replace c/cpp. > On May 10, 2015 2:51 PM, "Eric Floehr" wrote: > >> At the last monthly meeting, Raymond mentioned that The Columbus Rust >> Society was planning a Rust 1.0 Release party May 15 at Pillar (though the >> meetup says no location yet, so it might not be Pillar). The details are >> here: >> >> http://www.meetup.com/columbus-rs/events/222044818/ >> >> If you are interested in hooking your Python code to Rust code instead of >> C, there was a talk at PyCon this year by Dan Callahan called "My Python is >> a little Rust-y" that talked about how to call Rust functions from Python: >> >> https://www.youtube.com/watch?v=3CwJ0MH-4MA >> >> Cheers, >> Eric >> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> >> > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at joeshaw.org Tue May 12 17:51:23 2015 From: joe at joeshaw.org (Joe Shaw) Date: Tue, 12 May 2015 11:51:23 -0400 Subject: [CentralOH] Python and Rust In-Reply-To: References: Message-ID: Hi Kurtis, On Tue, May 12, 2015 at 10:11 AM, Kurtis Mullins wrote: > Hey guys and girls, > > Polling for opinions here. I watched the Rust video from PyCon about a > week ago. I work with a handful of people who commonly attend (and some > speak) at PyCon. I also work with people who are big "Go" people. > > This was really the first time I've come across Rust. It had some cool > things going for it. I was also surprised to see it backed by Mozilla. > > What's the benefits of using Rust over Go? I feel like they were both sort > of created to solve the same problem. I'm not intending this to be a flame > war -- I am just genuinely curious how/why Rust is taking off so > successfully. > I'm a big fan of both Rust and Go. I think it's kind of unfortunate that the world has sort of pitted them against each other, because they each have their own strengths and weaknesses and don't, in my opinion, have a lot of overlap in when you would choose one over the other. I would choose Rust over Go anywhere using C or C++ was essential: - Low-level system programming (kernel, drivers, low-level libraries) - System libraries (think an OpenSSL replacement) - Any time a garbage collector or runtime is not suitable - Situations where memory safety is absolutely essential (again, a crypto library comes to mind) For most applications I personally would choose Go for most things (especially today with the current level of maturity). Depending on how much you like the relative languages would influence that decision for you. Rust has a much stronger memory safety story. Its ownership model is novel and able to guarantee safety at compile time. It's basically impossible to write a Rust program that segfaults. Moreover, due to its immutability guarantees it's not really possible to end up with concurrency-caused data races. Go's is much more memory safe than C, but it still gives you the ability to shoot yourself in the foot with data races. Fortunately Go comes with great tooling to detect these kinds of races and they're pretty easy to avoid with some experience. While both Rust and Go can interop rather simply with existing C code, Rust does so much faster than Go ever could. This is largely because Go is a garbage collected language, so data has to be copied when crossing the barrier into C. Rust seems to have a little more programmer boilerplate for this, but fewer memory copies. Both Rust and Go have very good modern concurrency. Go's is tightly integrated with the language, which I think is a huge plus. Rust has a few different models that are provided by their standard library. Rust's seems to require more boilerplate to use than Go's. Go is a much, much, much simpler language. In many ways you can think of Go as analogous to Python or Ruby and Rust as analogous to C++. This makes Go a little less flexible in many ways -- its type system isn't as rich, for instance -- but it takes vastly less time to begin programming in Go, become productive with it, and understand other people's Go code. Go is a lot more mature at this point. Go 1 was released in 2012, and there have been 5 stable releases since then. (Go is on a 6 month release cycle.) They have made backwards compatibility guarantees for the lifetime of Go 1 and there are no plans for Go 2 at this point. Rust only just stopped making backward incompatible changes as part of their 1.0 beta a few weeks ago. There is much more good third-party Go code out there. I think Go's standard library is absolutely fantastic. It is definitely a "batteries included" standard library. It is very common for Go programs to be written using only code from the standard library. There is a lot of very good third-party code out there as well. I don't have as much experience with Rust's stdlib yet, but I get the feeling that it's not quite as complete and easy to use as Go's. The Rust blog has been absolutely on fire lately, highlighting a few features of the language that really illustrate its power: - http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html - http://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html - http://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html - http://blog.rust-lang.org/2015/05/11/traits.html Hope this helps, Joe > > Thanks! > > > On Sun, May 10, 2015 at 2:54 PM, John Santiago > wrote: > >> Thanks. I have been looking into embedded programming and looks like Rust >> could possibly replace c/cpp. >> On May 10, 2015 2:51 PM, "Eric Floehr" wrote: >> >>> At the last monthly meeting, Raymond mentioned that The Columbus Rust >>> Society was planning a Rust 1.0 Release party May 15 at Pillar (though the >>> meetup says no location yet, so it might not be Pillar). The details are >>> here: >>> >>> http://www.meetup.com/columbus-rs/events/222044818/ >>> >>> If you are interested in hooking your Python code to Rust code instead >>> of C, there was a talk at PyCon this year by Dan Callahan called "My Python >>> is a little Rust-y" that talked about how to call Rust functions from >>> Python: >>> >>> https://www.youtube.com/watch?v=3CwJ0MH-4MA >>> >>> Cheers, >>> Eric >>> >>> >>> _______________________________________________ >>> CentralOH mailing list >>> CentralOH at python.org >>> https://mail.python.org/mailman/listinfo/centraloh >>> >>> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> >> > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From raymondchandleriii at gmail.com Wed May 13 17:33:53 2015 From: raymondchandleriii at gmail.com (Raymond Chandler III) Date: Wed, 13 May 2015 11:33:53 -0400 Subject: [CentralOH] CentralOH Digest, Vol 97, Issue 3 In-Reply-To: References: Message-ID: <95D9B70E-2766-4FD2-A263-9EC6B6A31FCE@gmail.com> Hey Pythonists and Rustaceans. This Friday, the 15th of May, Pillar and the Columbus Rust Society will be throwing a 1.0 launch party for Rust 1.0. I will be giving a talk on genetic algorithms with Rust and about my hard knocks while learning rust. You all are welcome to join us for this event. If you plan to attend please RSVP by emailing me at rchandler at pillartechnology.com. Cheers, Raymond Chandler III > On May 13, 2015, at 6:00 AM, centraloh-request at python.org wrote: > > Send CentralOH mailing list submissions to > centraloh at python.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://mail.python.org/mailman/listinfo/centraloh > or, via email, send a message with subject or body 'help' to > centraloh-request at python.org > > You can reach the person managing the list at > centraloh-owner at python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of CentralOH digest..." > > > Today's Topics: > > 1. Re: Python and Rust (Kurtis Mullins) > 2. Re: Python and Rust (Joe Shaw) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 12 May 2015 10:11:23 -0400 > From: Kurtis Mullins > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > Subject: Re: [CentralOH] Python and Rust > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Hey guys and girls, > > Polling for opinions here. I watched the Rust video from PyCon about a week > ago. I work with a handful of people who commonly attend (and some speak) > at PyCon. I also work with people who are big "Go" people. > > This was really the first time I've come across Rust. It had some cool > things going for it. I was also surprised to see it backed by Mozilla. > > What's the benefits of using Rust over Go? I feel like they were both sort > of created to solve the same problem. I'm not intending this to be a flame > war -- I am just genuinely curious how/why Rust is taking off so > successfully. > > Thanks! > > > On Sun, May 10, 2015 at 2:54 PM, John Santiago > wrote: > >> Thanks. I have been looking into embedded programming and looks like Rust >> could possibly replace c/cpp. >> On May 10, 2015 2:51 PM, "Eric Floehr" wrote: >> >>> At the last monthly meeting, Raymond mentioned that The Columbus Rust >>> Society was planning a Rust 1.0 Release party May 15 at Pillar (though the >>> meetup says no location yet, so it might not be Pillar). The details are >>> here: >>> >>> http://www.meetup.com/columbus-rs/events/222044818/ >>> >>> If you are interested in hooking your Python code to Rust code instead of >>> C, there was a talk at PyCon this year by Dan Callahan called "My Python is >>> a little Rust-y" that talked about how to call Rust functions from Python: >>> >>> https://www.youtube.com/watch?v=3CwJ0MH-4MA >>> >>> Cheers, >>> Eric >>> >>> >>> _______________________________________________ >>> CentralOH mailing list >>> CentralOH at python.org >>> https://mail.python.org/mailman/listinfo/centraloh >>> >>> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> >> > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Message: 2 > Date: Tue, 12 May 2015 11:51:23 -0400 > From: Joe Shaw > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > Subject: Re: [CentralOH] Python and Rust > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Hi Kurtis, > > On Tue, May 12, 2015 at 10:11 AM, Kurtis Mullins > wrote: > >> Hey guys and girls, >> >> Polling for opinions here. I watched the Rust video from PyCon about a >> week ago. I work with a handful of people who commonly attend (and some >> speak) at PyCon. I also work with people who are big "Go" people. >> >> This was really the first time I've come across Rust. It had some cool >> things going for it. I was also surprised to see it backed by Mozilla. >> >> What's the benefits of using Rust over Go? I feel like they were both sort >> of created to solve the same problem. I'm not intending this to be a flame >> war -- I am just genuinely curious how/why Rust is taking off so >> successfully. >> > > I'm a big fan of both Rust and Go. I think it's kind of unfortunate that > the world has sort of pitted them against each other, because they each > have their own strengths and weaknesses and don't, in my opinion, have a > lot of overlap in when you would choose one over the other. > > I would choose Rust over Go anywhere using C or C++ was essential: > > - Low-level system programming (kernel, drivers, low-level libraries) > - System libraries (think an OpenSSL replacement) > - Any time a garbage collector or runtime is not suitable > - Situations where memory safety is absolutely essential (again, a > crypto library comes to mind) > > For most applications I personally would choose Go for most things > (especially today with the current level of maturity). Depending on how > much you like the relative languages would influence that decision for you. > > Rust has a much stronger memory safety story. Its ownership model is novel > and able to guarantee safety at compile time. It's basically impossible to > write a Rust program that segfaults. Moreover, due to its immutability > guarantees it's not really possible to end up with concurrency-caused data > races. Go's is much more memory safe than C, but it still gives you the > ability to shoot yourself in the foot with data races. Fortunately Go > comes with great tooling to detect these kinds of races and they're pretty > easy to avoid with some experience. > > While both Rust and Go can interop rather simply with existing C code, Rust > does so much faster than Go ever could. This is largely because Go is a > garbage collected language, so data has to be copied when crossing the > barrier into C. Rust seems to have a little more programmer boilerplate > for this, but fewer memory copies. > > Both Rust and Go have very good modern concurrency. Go's is tightly > integrated with the language, which I think is a huge plus. Rust has a few > different models that are provided by their standard library. Rust's seems > to require more boilerplate to use than Go's. > > Go is a much, much, much simpler language. In many ways you can think of > Go as analogous to Python or Ruby and Rust as analogous to C++. This makes > Go a little less flexible in many ways -- its type system isn't as rich, > for instance -- but it takes vastly less time to begin programming in Go, > become productive with it, and understand other people's Go code. > > Go is a lot more mature at this point. Go 1 was released in 2012, and > there have been 5 stable releases since then. (Go is on a 6 month release > cycle.) They have made backwards compatibility guarantees for the lifetime > of Go 1 and there are no plans for Go 2 at this point. Rust only just > stopped making backward incompatible changes as part of their 1.0 beta a > few weeks ago. There is much more good third-party Go code out there. > > I think Go's standard library is absolutely fantastic. It is definitely a > "batteries included" standard library. It is very common for Go programs > to be written using only code from the standard library. There is a lot of > very good third-party code out there as well. I don't have as much > experience with Rust's stdlib yet, but I get the feeling that it's not > quite as complete and easy to use as Go's. > > The Rust blog has been absolutely on fire lately, highlighting a few > features of the language that really illustrate its power: > > - http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html > - > http://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html > - http://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html > - http://blog.rust-lang.org/2015/05/11/traits.html > > Hope this helps, > > Joe > > > >> >> Thanks! >> >> >> On Sun, May 10, 2015 at 2:54 PM, John Santiago >> wrote: >> >>> Thanks. I have been looking into embedded programming and looks like Rust >>> could possibly replace c/cpp. >>> On May 10, 2015 2:51 PM, "Eric Floehr" wrote: >>> >>>> At the last monthly meeting, Raymond mentioned that The Columbus Rust >>>> Society was planning a Rust 1.0 Release party May 15 at Pillar (though the >>>> meetup says no location yet, so it might not be Pillar). The details are >>>> here: >>>> >>>> http://www.meetup.com/columbus-rs/events/222044818/ >>>> >>>> If you are interested in hooking your Python code to Rust code instead >>>> of C, there was a talk at PyCon this year by Dan Callahan called "My Python >>>> is a little Rust-y" that talked about how to call Rust functions from >>>> Python: >>>> >>>> https://www.youtube.com/watch?v=3CwJ0MH-4MA >>>> >>>> Cheers, >>>> Eric >>>> >>>> >>>> _______________________________________________ >>>> CentralOH mailing list >>>> CentralOH at python.org >>>> https://mail.python.org/mailman/listinfo/centraloh >>>> >>>> >>> _______________________________________________ >>> CentralOH mailing list >>> CentralOH at python.org >>> https://mail.python.org/mailman/listinfo/centraloh >>> >>> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> >> > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > > ------------------------------ > > End of CentralOH Digest, Vol 97, Issue 3 > **************************************** From jep200404 at columbus.rr.com Wed May 13 22:22:09 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Wed, 13 May 2015 16:22:09 -0400 Subject: [CentralOH] Refactoring Pylint Command In-Reply-To: <20150510135021.39413ac0.jep200404@columbus.rr.com> References: <20150510135021.39413ac0.jep200404@columbus.rr.com> Message-ID: <20150513162209.5f63958e.jep200404@columbus.rr.com> On Sun, 10 May 2015 13:50:21 -0400, jep200404 at columbus.rr.com wrote: > f='foo.py';while true; do ls -l "$f";pylint "$f" | head -`expr $LINES - 5`;inotify -e modify "$f";done The grep -v commands below makes things fit on the screen better. Waiting on pylintrc is handy for when I change the rules. f='hoo.py';while true; do date;pylint "$f" | grep -v '^ *$' | grep -v '^[-+=]*$' | head -`expr $LINES - 5`;inotifywait -e modify pylintrc -e modify "$f";done It's about time to put that honker in a poll-pylint file. #!/bin/sh while true; do date pylint "$@" | grep -v '^ *$' | grep -v '^[-+=]*$' | head -`expr $LINES - 5` inotifywait -e modify pylintrc "$@" done I've not figured out how to use the pylint.vim plugin, which might moot the above. http://www.vim.org/scripts/script.php%3Fscript_id=891 From jep200404 at columbus.rr.com Wed May 13 22:40:14 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Wed, 13 May 2015 16:40:14 -0400 Subject: [CentralOH] Refactoring Pylint Command In-Reply-To: <20150513162209.5f63958e.jep200404@columbus.rr.com> References: <20150510135021.39413ac0.jep200404@columbus.rr.com> <20150513162209.5f63958e.jep200404@columbus.rr.com> Message-ID: <20150513164014.6ed0e5e0.jep200404@columbus.rr.com> On Wed, 13 May 2015 16:22:09 -0400, jep200404 at columbus.rr.com wrote: > grep -v '^ *$' | > grep -v '^[-+=]*$' | which refactors to just: grep -v '^[-+= ]*$' | From eric at intellovations.com Thu May 14 00:32:51 2015 From: eric at intellovations.com (Eric Floehr) Date: Wed, 13 May 2015 18:32:51 -0400 Subject: [CentralOH] CentralOH Digest, Vol 97, Issue 3 In-Reply-To: <95D9B70E-2766-4FD2-A263-9EC6B6A31FCE@gmail.com> References: <95D9B70E-2766-4FD2-A263-9EC6B6A31FCE@gmail.com> Message-ID: You had me at "genetic algorithms"... On May 13, 2015 11:34 AM, "Raymond Chandler III" < raymondchandleriii at gmail.com> wrote: > Hey Pythonists and Rustaceans. > > This Friday, the 15th of May, Pillar and the Columbus Rust Society will be > throwing a 1.0 launch party for Rust 1.0. I will be giving a talk on > genetic algorithms with Rust and about my hard knocks while learning rust. > You all are welcome to join us for this event. If you plan to attend please > RSVP by emailing me at rchandler at pillartechnology.com. > > Cheers, > Raymond Chandler III > > > On May 13, 2015, at 6:00 AM, centraloh-request at python.org wrote: > > > > Send CentralOH mailing list submissions to > > centraloh at python.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://mail.python.org/mailman/listinfo/centraloh > > or, via email, send a message with subject or body 'help' to > > centraloh-request at python.org > > > > You can reach the person managing the list at > > centraloh-owner at python.org > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of CentralOH digest..." > > > > > > Today's Topics: > > > > 1. Re: Python and Rust (Kurtis Mullins) > > 2. Re: Python and Rust (Joe Shaw) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Tue, 12 May 2015 10:11:23 -0400 > > From: Kurtis Mullins > > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > > > Subject: Re: [CentralOH] Python and Rust > > Message-ID: > > < > CAPbEHsf5zuBey432Zh5k7UKsikDdb7guHoir2-WeTgaWs-_mqA at mail.gmail.com> > > Content-Type: text/plain; charset="utf-8" > > > > Hey guys and girls, > > > > Polling for opinions here. I watched the Rust video from PyCon about a > week > > ago. I work with a handful of people who commonly attend (and some speak) > > at PyCon. I also work with people who are big "Go" people. > > > > This was really the first time I've come across Rust. It had some cool > > things going for it. I was also surprised to see it backed by Mozilla. > > > > What's the benefits of using Rust over Go? I feel like they were both > sort > > of created to solve the same problem. I'm not intending this to be a > flame > > war -- I am just genuinely curious how/why Rust is taking off so > > successfully. > > > > Thanks! > > > > > > On Sun, May 10, 2015 at 2:54 PM, John Santiago > > wrote: > > > >> Thanks. I have been looking into embedded programming and looks like > Rust > >> could possibly replace c/cpp. > >> On May 10, 2015 2:51 PM, "Eric Floehr" wrote: > >> > >>> At the last monthly meeting, Raymond mentioned that The Columbus Rust > >>> Society was planning a Rust 1.0 Release party May 15 at Pillar (though > the > >>> meetup says no location yet, so it might not be Pillar). The details > are > >>> here: > >>> > >>> http://www.meetup.com/columbus-rs/events/222044818/ > >>> > >>> If you are interested in hooking your Python code to Rust code instead > of > >>> C, there was a talk at PyCon this year by Dan Callahan called "My > Python is > >>> a little Rust-y" that talked about how to call Rust functions from > Python: > >>> > >>> https://www.youtube.com/watch?v=3CwJ0MH-4MA > >>> > >>> Cheers, > >>> Eric > >>> > >>> > >>> _______________________________________________ > >>> CentralOH mailing list > >>> CentralOH at python.org > >>> https://mail.python.org/mailman/listinfo/centraloh > >>> > >>> > >> _______________________________________________ > >> CentralOH mailing list > >> CentralOH at python.org > >> https://mail.python.org/mailman/listinfo/centraloh > >> > >> > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > http://mail.python.org/pipermail/centraloh/attachments/20150512/76cb68a8/attachment-0001.html > > > > > > ------------------------------ > > > > Message: 2 > > Date: Tue, 12 May 2015 11:51:23 -0400 > > From: Joe Shaw > > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > > > Subject: Re: [CentralOH] Python and Rust > > Message-ID: > > Q at mail.gmail.com> > > Content-Type: text/plain; charset="utf-8" > > > > Hi Kurtis, > > > > On Tue, May 12, 2015 at 10:11 AM, Kurtis Mullins < > kurtis.mullins at gmail.com> > > wrote: > > > >> Hey guys and girls, > >> > >> Polling for opinions here. I watched the Rust video from PyCon about a > >> week ago. I work with a handful of people who commonly attend (and some > >> speak) at PyCon. I also work with people who are big "Go" people. > >> > >> This was really the first time I've come across Rust. It had some cool > >> things going for it. I was also surprised to see it backed by Mozilla. > >> > >> What's the benefits of using Rust over Go? I feel like they were both > sort > >> of created to solve the same problem. I'm not intending this to be a > flame > >> war -- I am just genuinely curious how/why Rust is taking off so > >> successfully. > >> > > > > I'm a big fan of both Rust and Go. I think it's kind of unfortunate that > > the world has sort of pitted them against each other, because they each > > have their own strengths and weaknesses and don't, in my opinion, have a > > lot of overlap in when you would choose one over the other. > > > > I would choose Rust over Go anywhere using C or C++ was essential: > > > > - Low-level system programming (kernel, drivers, low-level libraries) > > - System libraries (think an OpenSSL replacement) > > - Any time a garbage collector or runtime is not suitable > > - Situations where memory safety is absolutely essential (again, a > > crypto library comes to mind) > > > > For most applications I personally would choose Go for most things > > (especially today with the current level of maturity). Depending on how > > much you like the relative languages would influence that decision for > you. > > > > Rust has a much stronger memory safety story. Its ownership model is > novel > > and able to guarantee safety at compile time. It's basically impossible > to > > write a Rust program that segfaults. Moreover, due to its immutability > > guarantees it's not really possible to end up with concurrency-caused > data > > races. Go's is much more memory safe than C, but it still gives you the > > ability to shoot yourself in the foot with data races. Fortunately Go > > comes with great tooling to detect these kinds of races and they're > pretty > > easy to avoid with some experience. > > > > While both Rust and Go can interop rather simply with existing C code, > Rust > > does so much faster than Go ever could. This is largely because Go is a > > garbage collected language, so data has to be copied when crossing the > > barrier into C. Rust seems to have a little more programmer boilerplate > > for this, but fewer memory copies. > > > > Both Rust and Go have very good modern concurrency. Go's is tightly > > integrated with the language, which I think is a huge plus. Rust has a > few > > different models that are provided by their standard library. Rust's > seems > > to require more boilerplate to use than Go's. > > > > Go is a much, much, much simpler language. In many ways you can think of > > Go as analogous to Python or Ruby and Rust as analogous to C++. This > makes > > Go a little less flexible in many ways -- its type system isn't as rich, > > for instance -- but it takes vastly less time to begin programming in Go, > > become productive with it, and understand other people's Go code. > > > > Go is a lot more mature at this point. Go 1 was released in 2012, and > > there have been 5 stable releases since then. (Go is on a 6 month > release > > cycle.) They have made backwards compatibility guarantees for the > lifetime > > of Go 1 and there are no plans for Go 2 at this point. Rust only just > > stopped making backward incompatible changes as part of their 1.0 beta a > > few weeks ago. There is much more good third-party Go code out there. > > > > I think Go's standard library is absolutely fantastic. It is definitely > a > > "batteries included" standard library. It is very common for Go programs > > to be written using only code from the standard library. There is a lot > of > > very good third-party code out there as well. I don't have as much > > experience with Rust's stdlib yet, but I get the feeling that it's not > > quite as complete and easy to use as Go's. > > > > The Rust blog has been absolutely on fire lately, highlighting a few > > features of the language that really illustrate its power: > > > > - http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html > > - > > > http://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html > > - http://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html > > - http://blog.rust-lang.org/2015/05/11/traits.html > > > > Hope this helps, > > > > Joe > > > > > > > >> > >> Thanks! > >> > >> > >> On Sun, May 10, 2015 at 2:54 PM, John Santiago > >> wrote: > >> > >>> Thanks. I have been looking into embedded programming and looks like > Rust > >>> could possibly replace c/cpp. > >>> On May 10, 2015 2:51 PM, "Eric Floehr" > wrote: > >>> > >>>> At the last monthly meeting, Raymond mentioned that The Columbus Rust > >>>> Society was planning a Rust 1.0 Release party May 15 at Pillar > (though the > >>>> meetup says no location yet, so it might not be Pillar). The details > are > >>>> here: > >>>> > >>>> http://www.meetup.com/columbus-rs/events/222044818/ > >>>> > >>>> If you are interested in hooking your Python code to Rust code instead > >>>> of C, there was a talk at PyCon this year by Dan Callahan called "My > Python > >>>> is a little Rust-y" that talked about how to call Rust functions from > >>>> Python: > >>>> > >>>> https://www.youtube.com/watch?v=3CwJ0MH-4MA > >>>> > >>>> Cheers, > >>>> Eric > >>>> > >>>> > >>>> _______________________________________________ > >>>> CentralOH mailing list > >>>> CentralOH at python.org > >>>> https://mail.python.org/mailman/listinfo/centraloh > >>>> > >>>> > >>> _______________________________________________ > >>> CentralOH mailing list > >>> CentralOH at python.org > >>> https://mail.python.org/mailman/listinfo/centraloh > >>> > >>> > >> > >> _______________________________________________ > >> CentralOH mailing list > >> CentralOH at python.org > >> https://mail.python.org/mailman/listinfo/centraloh > >> > >> > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > http://mail.python.org/pipermail/centraloh/attachments/20150512/deb495b1/attachment-0001.html > > > > > > ------------------------------ > > > > Subject: Digest Footer > > > > _______________________________________________ > > CentralOH mailing list > > CentralOH at python.org > > https://mail.python.org/mailman/listinfo/centraloh > > > > > > ------------------------------ > > > > End of CentralOH Digest, Vol 97, Issue 3 > > **************************************** > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From info at pyohio.org Thu May 14 21:58:17 2015 From: info at pyohio.org (=?utf-8?Q?PyOhio=2C=20Inc.?=) Date: Thu, 14 May 2015 19:58:17 +0000 Subject: [CentralOH] =?utf-8?q?PyOhio_2015_News?= Message-ID: <8c9245b985e483ce2777296fbc26f2dea68.20150514195807@mail186.atl61.mcsv.net> PyOhio 2015 News. View this email in your browser (http://us3.campaign-archive2.com/?u=8c9245b985e483ce2777296fb&id=cbfab5d71a&e=c26f2dea68) ** PyOhio 2015 Keynote ------------------------------------------------------------ ** Catherine Devlin will Keynote PyOhio 2015. ------------------------------------------------------------ Catherine Devlin served as PyOhio's chair during its first three years. She currently works as a back-end developer for 18F, a new Federal agency bringing open source software and principles into Federal development work. The intersection of Python with relational databases is her special love, along with history, human languages, and horses. We are honored and excited to have her keynote this year's PyOhio. ** Hotel Arrangements ------------------------------------------------------------ We now have a discount room block at The Holiday Inn Express & Suites OSU (http://pyohio.us3.list-manage.com/track/click?u=8c9245b985e483ce2777296fb&id=fb6eb46311&e=c26f2dea68) . Many PyOhio attendees have stayed there in the past. If you have already booked a room there, and your rate is higher than the conference rate, you can call and get it changed. You must do so by July 1st. ** Speaker Submissions Due ------------------------------------------------------------ The Deadline to submit is fast approaching and we still don't have enough talks, so we've extended the deadline! This year's call for proposals will close June 1st. Only 47 Talks, and 6 Tutorials have been submitted this year. We need more! First time speakers are welcome and encouraged to speak at PyOhio. Take that lightning talk you gave last year and beef it up into a full talk! Think about extending that open space idea into a roundtable panel discussion. ** Registration is Open ------------------------------------------------------------ Registration is in full swing and tickets are flying off the shelves. Get yours before it is too late! Register now by clicking the button below. PyOhio is, and always will be, a free conference (but T-Shirts are available for purchase). Register Here (http://pyohio.us3.list-manage.com/track/click?u=8c9245b985e483ce2777296fb&id=7bc6a84fcf&e=c26f2dea68) ============================================================ ** Follow us on Twitter (http://pyohio.us3.list-manage1.com/track/click?u=8c9245b985e483ce2777296fb&id=76d5a021aa&e=c26f2dea68) ** Follow us on Twitter (http://pyohio.us3.list-manage2.com/track/click?u=8c9245b985e483ce2777296fb&id=436aa49d55&e=c26f2dea68) Copyright ? 2015 PyOhio, Inc., All rights reserved. You are receiving this email because you have either attended or registered to attend PyOhio in the past. Our mailing address is: PyOhio, Inc. 79 Bohyer Avenue, Pataskala, OH, United States Columbus, Oh 43224 USA ** unsubscribe from this list (http://pyohio.us3.list-manage.com/unsubscribe?u=8c9245b985e483ce2777296fb&id=ebb557184f&e=c26f2dea68&c=cbfab5d71a) ** update subscription preferences (http://pyohio.us3.list-manage.com/profile?u=8c9245b985e483ce2777296fb&id=ebb557184f&e=c26f2dea68) Email Marketing Powered by MailChimp http://www.mailchimp.com/monkey-rewards/?utm_source=freemium_newsletter&utm_medium=email&utm_campaign=monkey_rewards&aid=8c9245b985e483ce2777296fb&afl=1 -------------- next part -------------- An HTML attachment was scrubbed... URL: From james at atlantixeng.com Fri May 15 13:12:57 2015 From: james at atlantixeng.com (James Bonanno) Date: Fri, 15 May 2015 07:12:57 -0400 Subject: [CentralOH] IPython Support GitHub Message-ID: <5555D4B9.2080508@atlantixeng.com> I did check the support of Ipython in GitHub, based on looking at the page for March Python presentation. It appears that GitHub ran the notebook in the background, and all the calculations that were expected occurred. The support of Ipython in GitHub now is a very useful feature. https://github.com/saturn77/CythonBootstrap/blob/master/CythonBootstrap.ipynb James From eric at intellovations.com Mon May 18 14:50:38 2015 From: eric at intellovations.com (Eric Floehr) Date: Mon, 18 May 2015 08:50:38 -0400 Subject: [CentralOH] Python 3.5 to make async easier Message-ID: All, I ran across this article the other day about two new keywords being introduced in Python 3.5 that will make asynchronous programming easier. These keywords are async and await: http://www.infoq.com/news/2015/05/python-async-await Python 3.5 looks to have a lot of other cool features, such as a dedicated matrix multiplication operator (https://www.python.org/dev/peps/pep-0465/) and faster directory scanning. Python 3.5 is in alpha now, with an expected release date of September 13. Best Regards, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From joskra42.list at gmail.com Wed May 20 17:04:16 2015 From: joskra42.list at gmail.com (Joshua Kramer) Date: Wed, 20 May 2015 11:04:16 -0400 Subject: [CentralOH] Weird issue reading a Mainframe file with Python Message-ID: Hello all! I have a rather bizarre issue reading files that came from an IBM Mainframe. I am on a Linux server, FTP'ing the files from the Mainframe, and running a Python script. It seems like the Python script always reads just one byte at a time from the file! For example, if you have a file with records like this (this is two records, each one being of length 26): 00423SMITH JOHN 126400100423SMITH ROBERT1264001 If you open this file with any text editor on Linux, it appears as it is there. If I do this in Python: fp = open("FILE.DAT", "rb") for line in fp.read(26): print "Record is: " + line Then what I will get is this: Record is: 0 Record is: 0 Record is: 4 Record Is: 2 Record Is: 3 ...etcetera. I wrote the same program in C, and I got the results I expected- not these results. So I have reason to believe that the file is good. I am using Python 2.4.3. (Unfortunately, stuck on an ancient RedHat server...) What am I missing here? Thanks! -JK From brywilharris at gmail.com Wed May 20 17:24:44 2015 From: brywilharris at gmail.com (Bryan Harris) Date: Wed, 20 May 2015 11:24:44 -0400 Subject: [CentralOH] Weird issue reading a Mainframe file with Python In-Reply-To: References: Message-ID: "rb" means "read binary", try just "r" Bryan Harris, PE Research Engineer Structures and Materials Evaluation Group University of Dayton Research Institute bryan.harris at udri.udayton.edu http://www.udri.udayton.edu/ (937) 229-5561 On Wed, May 20, 2015 at 11:04 AM, Joshua Kramer wrote: > Hello all! > > I have a rather bizarre issue reading files that came from an IBM > Mainframe. I am on a Linux server, FTP'ing the files from the > Mainframe, and running a Python script. It seems like the Python > script always reads just one byte at a time from the file! For > example, if you have a file with records like this (this is two > records, each one being of length 26): > > 00423SMITH JOHN 126400100423SMITH ROBERT1264001 > > If you open this file with any text editor on Linux, it appears as it is > there. > > If I do this in Python: > > fp = open("FILE.DAT", "rb") > for line in fp.read(26): > print "Record is: " + line > > Then what I will get is this: > Record is: 0 > Record is: 0 > Record is: 4 > Record Is: 2 > Record Is: 3 > ...etcetera. > > I wrote the same program in C, and I got the results I expected- not > these results. So I have reason to believe that the file is good. > > I am using Python 2.4.3. (Unfortunately, stuck on an ancient RedHat > server...) > > What am I missing here? > > Thanks! > -JK > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From akubera at kent.edu Wed May 20 17:28:59 2015 From: akubera at kent.edu (Andrew Kubera) Date: Wed, 20 May 2015 11:28:59 -0400 Subject: [CentralOH] Weird issue reading a Mainframe file with Python In-Reply-To: References: Message-ID: <7188CA8E-DEEA-4AE8-B3F9-2F69EF781561@gmail.com> It looks like read() is returning a string, then the for loop is actually looping through that string one character at a time. If each of the records are on one line, you can simply iterate over the file: for line in fp: ... If not, you should turn your loop into: while True: line = fp.read(26) if len(line) < 26: break ... Or be fancy with a generator (I assume that?s in python2.4?): def next_record(file): while True: line = fp.read(26) if len(line) < 26: raise StopIteration yield line for record in next_record(fp): ... - Andrew Kubera > On May 20, 2015, at 11:04 AM, Joshua Kramer wrote: > > Hello all! > > I have a rather bizarre issue reading files that came from an IBM > Mainframe. I am on a Linux server, FTP'ing the files from the > Mainframe, and running a Python script. It seems like the Python > script always reads just one byte at a time from the file! For > example, if you have a file with records like this (this is two > records, each one being of length 26): > > 00423SMITH JOHN 126400100423SMITH ROBERT1264001 > > If you open this file with any text editor on Linux, it appears as it is there. > > If I do this in Python: > > fp = open("FILE.DAT", "rb") > for line in fp.read(26): > print "Record is: " + line > > Then what I will get is this: > Record is: 0 > Record is: 0 > Record is: 4 > Record Is: 2 > Record Is: 3 > ...etcetera. > > I wrote the same program in C, and I got the results I expected- not > these results. So I have reason to believe that the file is good. > > I am using Python 2.4.3. (Unfortunately, stuck on an ancient RedHat server...) > > What am I missing here? > > Thanks! > -JK > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh -------------- next part -------------- An HTML attachment was scrubbed... URL: From akubera at kent.edu Wed May 20 17:30:29 2015 From: akubera at kent.edu (Andrew Kubera) Date: Wed, 20 May 2015 11:30:29 -0400 Subject: [CentralOH] Weird issue reading a Mainframe file with Python In-Reply-To: <7188CA8E-DEEA-4AE8-B3F9-2F69EF781561@gmail.com> References: <7188CA8E-DEEA-4AE8-B3F9-2F69EF781561@gmail.com> Message-ID: <4BF0FEBB-015F-4C83-97A0-CB6C2B45B8AA@kent.edu> of course? with correct indentation at the while loop? ? > On May 20, 2015, at 11:28 AM, Andrew Kubera wrote: > > It looks like read() is returning a string, then the for loop is actually looping through that string one character at a time. > > If each of the records are on one line, you can simply iterate over the file: for line in fp: ... > > If not, you should turn your loop into: > > while True: > line = fp.read(26) > if len(line) < 26: break > ... > > Or be fancy with a generator (I assume that?s in python2.4?): > > def next_record(file): > while True: > line = fp.read(26) > if len(line) < 26: raise StopIteration > > yield line > > for record in next_record(fp): > ... > > - Andrew Kubera > > >> On May 20, 2015, at 11:04 AM, Joshua Kramer > wrote: >> >> Hello all! >> >> I have a rather bizarre issue reading files that came from an IBM >> Mainframe. I am on a Linux server, FTP'ing the files from the >> Mainframe, and running a Python script. It seems like the Python >> script always reads just one byte at a time from the file! For >> example, if you have a file with records like this (this is two >> records, each one being of length 26): >> >> 00423SMITH JOHN 126400100423SMITH ROBERT1264001 >> >> If you open this file with any text editor on Linux, it appears as it is there. >> >> If I do this in Python: >> >> fp = open("FILE.DAT", "rb") >> for line in fp.read(26): >> print "Record is: " + line >> >> Then what I will get is this: >> Record is: 0 >> Record is: 0 >> Record is: 4 >> Record Is: 2 >> Record Is: 3 >> ...etcetera. >> >> I wrote the same program in C, and I got the results I expected- not >> these results. So I have reason to believe that the file is good. >> >> I am using Python 2.4.3. (Unfortunately, stuck on an ancient RedHat server...) >> >> What am I missing here? >> >> Thanks! >> -JK >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From smashing_good_show at hotmail.com Thu May 21 17:39:53 2015 From: smashing_good_show at hotmail.com (timothy spencer) Date: Thu, 21 May 2015 08:39:53 -0700 Subject: [CentralOH] from __future__ import print function In-Reply-To: References: Message-ID: Tim here, reporting in. I am going through Zed Shaw's book again for review, and this time I am using the "from __future__ import print_function" line because using () with the print() is the proper way to print things. Zed's book doesn't use that, and I am noticing some very different things I need to do with printing the syntax. I can show some examples on Friday if people like. > From: centraloh-request at python.org > Subject: CentralOH Digest, Vol 96, Issue 6 > To: centraloh at python.org > Date: Wed, 8 Apr 2015 12:00:02 +0200 > > Send CentralOH mailing list submissions to > centraloh at python.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://mail.python.org/mailman/listinfo/centraloh > or, via email, send a message with subject or body 'help' to > centraloh-request at python.org > > You can reach the person managing the list at > centraloh-owner at python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of CentralOH digest..." > > > Today's Topics: > > 1. Nuitka Compiler Docs (James Bonanno) > 2. Code by voice video (timothy spencer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 07 Apr 2015 06:41:05 -0400 > From: James Bonanno > To: centraloh at python.org > Subject: [CentralOH] Nuitka Compiler Docs > Message-ID: <5523B441.4030907 at atlantixeng.com> > Content-Type: text/plain; charset=utf-8; format=flowed > > One more note on Nuitka. It seems to be well supported by it's author; > and there are installers for just above every platform. The user manual > and other documentation can be found here: > > http://nuitka.net/doc/user-manual.htmln > > I am still looking at doing one more more basic programs with Theano or > Shedskin, and then adding those to the Cython Bootstrap notebook file... > The amount of optimizing compilers for Python is now quite large. > > James > > > ------------------------------ > > Message: 2 > Date: Tue, 7 Apr 2015 05:52:12 -0700 > From: timothy spencer > To: "centraloh at python.org" > Subject: [CentralOH] Code by voice video > Message-ID: > Content-Type: text/plain; charset="iso-8859-1" > > I found another video of coding by voice. This one is with VB, but still pretty neat. He is also using the Dragon software from Nuance. > > > From: centraloh-request at python.org > > Subject: CentralOH Digest, Vol 96, Issue 5 > > To: centraloh at python.org > > Date: Tue, 7 Apr 2015 12:00:02 +0200 > > > > Send CentralOH mailing list submissions to > > centraloh at python.org > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://mail.python.org/mailman/listinfo/centraloh > > or, via email, send a message with subject or body 'help' to > > centraloh-request at python.org > > > > You can reach the person managing the list at > > centraloh-owner at python.org > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of CentralOH digest..." > > > > > > Today's Topics: > > > > 1. Re: not as sexy as efloehr's cloud graphing.... (Eric Miller) > > 2. Nuitka vs Cython (James Bonanno) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Mon, 6 Apr 2015 09:35:38 -0400 > > From: Eric Miller > > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > > > Subject: Re: [CentralOH] not as sexy as efloehr's cloud graphing.... > > Message-ID: > > > > Content-Type: text/plain; charset="utf-8" > > > > here's a better version. Switched to statsd/grafana > > > > https://www.hostedgraphite.com/7cc81a60/grafana/#dashboard/temp/e6c6a737196e70ca561009cf6bc6abd7b41a4402 > > > > On Sun, Apr 5, 2015 at 8:26 PM, Eric Floehr wrote: > > > > > Oh that's awesome! And I never would have thought to use something like > > > Librato for this, so double awesome. > > > > > > But why didn't you tell me I was supposed to wait to press the button? > > > That you could only press it once! :-) > > > > > > Thanks for sharing that! > > > > > > On Sun, Apr 5, 2015 at 12:02 AM, Eric Miller > > > wrote: > > > > > >> ...but, still chuckleworthy I hope. > > >> > > >> > > >> http://www.reddit.com/r/thebutton/comments/31hk2g/realtime_graph_to_predict_the_ultimate_heat_death/ > > >> > > >> Please excuse the lazy error handling, lack of comments, and the obvious > > >> need to make functions in at least two places. I was just screwing > > >> around... > > >> > > >> from lxml import htmlimport requestsimport timeimport librato > > >> > > >> user = 'yourLibratoEmail at gmail.com' > > >> token = 'your_____API____________key' > > >> api = librato.connect(user, token) > > >> while True: > > >> try: > > >> page = requests.get('http://www.reddit.com/r/thebutton') > > >> tree = html.fromstring(page.text) > > >> participants = tree.xpath('//span[@class="thebutton-participants"]/text()') > > >> numbers = tree.xpath('//span[@class="number"]/text()') > > >> > > >> page = requests.get('http://www.reddit.com/about') > > >> tree = html.fromstring(page.text) > > >> dailyStats = tree.xpath('//div[@class="value"]/text()') > > >> > > >> pressers = participants[0] > > >> subcribers = numbers[0] > > >> activeViewers = numbers[1] > > >> dailyRedditUsers = dailyStats[4] > > >> > > >> pressers = pressers.replace(',', '') > > >> subcribers = subcribers.replace(',', '') > > >> activeViewers = activeViewers.replace(',', '') > > >> dailyRedditUsers = dailyRedditUsers.replace(',', '') > > >> > > >> api.submit("pressers", pressers) > > >> api.submit("subcribers", subcribers) > > >> api.submit("activeViewers", activeViewers) > > >> api.submit("dailyRedditUsers", dailyRedditUsers) > > >> > > >> print pressers > > >> print subcribers > > >> print activeViewers > > >> print dailyRedditUsers > > >> > > >> time.sleep(5) > > >> except: > > >> continue > > >> > > >> > > >> _______________________________________________ > > >> CentralOH mailing list > > >> CentralOH at python.org > > >> https://mail.python.org/mailman/listinfo/centraloh > > >> > > >> > > > > > > _______________________________________________ > > > CentralOH mailing list > > > CentralOH at python.org > > > https://mail.python.org/mailman/listinfo/centraloh > > > > > > > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: > > > > ------------------------------ > > > > Message: 2 > > Date: Mon, 06 Apr 2015 10:05:35 -0400 > > From: James Bonanno > > To: centraloh at python.org > > Subject: [CentralOH] Nuitka vs Cython > > Message-ID: <552292AF.6020409 at atlantixeng.com> > > Content-Type: text/plain; charset=utf-8; format=flowed > > > > In another follow up from last week, I compiled some basic programs with > > Nuitka. It's actually somewhat impressive that you can compile a static > > python program to a standalone C++ executable. For the various reasons > > that I talked about last week, I still prefer Cython. However, Nuitka is > > promising ... > > > > Below I show a python file, math.py, that is compile to an executable in > > one command line statement. > > > > %% file math.py > > > > def fib(n): > > """Print the Fibonacci series up to n.""" > > a, b = 0, 1 > > index = 0 > > while b < n: > > print ("%d, %d, \n" % (index, b) ) > > a, b = b, a + b > > index += 1 > > > > > > if __name__=="__main__": > > fib(1000) > > > > Here I compile with Nuitka and execute, in standalone mode: > > > > james at saturn9 ~/crc $ nuitka --execute --standalone math.py > > 0, 1, > > > > 1, 1, > > > > 2, 2, > > > > 3, 3, > > > > 4, 5, > > > > 5, 8, > > > > 6, 13, > > > > 7, 21, > > > > 8, 34, > > > > 9, 55, > > > > 10, 89, > > > > 11, 144, > > > > 12, 233, > > > > 13, 377, > > > > 14, 610, > > > > 15, 987, > > > > > > > > ------------------------------ > > > > Subject: Digest Footer > > > > _______________________________________________ > > CentralOH mailing list > > CentralOH at python.org > > https://mail.python.org/mailman/listinfo/centraloh > > > > > > ------------------------------ > > > > End of CentralOH Digest, Vol 96, Issue 5 > > **************************************** > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > > ------------------------------ > > End of CentralOH Digest, Vol 96, Issue 6 > **************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From vken85 at gmail.com Sat May 23 05:07:56 2015 From: vken85 at gmail.com (Kenneth Wee) Date: Sat, 23 May 2015 11:07:56 +0800 Subject: [CentralOH] Python for Developing Enterprise Systems? Message-ID: Hi Pythonistas, TL;DR: For enterprise system development needs, is Python a viable option versus Java? How can I convince a team with dominant number of Java-trained engineers moving away from Php to pick Python over Java? What we do: Our team is transitioning from targeting startup customers within the telecommunications industry, towards enterprise customers with mature custom systems. We currently build our web-based systems in a service-oriented architecture (almost), and will be forsaking Php for either Java or Python for future development. Furthermore, we might possibly be shifting to shrink-wrapped systems as well. We are at a major turning point in deciding on scrapping what we have built and coming up with a new maintainable system fit for enterprise demands. Non-technical Considerations: 1) Industry Bias (sales consideration) Our new customers' (especially decision makers) tend to have preconceived notions regarding the languages used for software development. It's a fight between convincing them or yielding to their preference (which incurs large costs). 2) Protecting I/P by obfuscation (self-preservation consideration) The need for protecting our I/P when customers insist they need to keep things local and secure. Which means they get access to code (source or not) of the system being deployed, i.e. the cloud is not an option. 3) Availability of resource for hiring to build and maintain system Technical-related Considerations: 1) Inter-communicating with existing enterprise systems - WSDL seems to be really needed 2) Speed of report generation - Multi-processing / Multi-threading capabilities 3) Development speed (agility) - Availability and ease of use of libraries - Language features - Types of Frameworks that are capable enough to be used for enterprise requirements -- e.g. spring, hibernate, J2ee VS Django, Web2py 4) Availability of development tools - Developer tools which enhance workflow - Testing frameworks 5) Code maintainability 6) Ease of deployment Given that this is a Python mailing list, I'm expecting more biased responses. However, hopefully folks with experience in both languages could discuss the merits of Java VS Python, specifically towards the well-being (pain) of the team moving forward and consideration for bottom-line (customer segment). Thank you in advance, Kenneth -------------- next part -------------- An HTML attachment was scrubbed... URL: From winningham at gmail.com Sat May 23 09:51:38 2015 From: winningham at gmail.com (Thomas Winningham) Date: Sat, 23 May 2015 03:51:38 -0400 Subject: [CentralOH] Python for Developing Enterprise Systems? In-Reply-To: References: Message-ID: Having extensively messed with a lot of this, I have a few points but others should chime in too. I might lean towards Java actually, but maybe just barely. - SOAP ... Python has it, but it is an aging set of libraries... Most Python frameworks focus on REST. There are perhaps ways to bridge this gap, like writing SOAP <-> REST adapters in Java only where needed, or some other product that focuses on this very common need. - Performance (maybe) .... Threads are Java's life ... But then again, things like uWSGI can make Python concurrency astounding for web stuff if you let it do the work. JVMs in theory are just "nicer." Pypy is used here and there, experimentally, but uWSGI is indeed very cool. You can always use C. - Language ecosystem... You could for instance use Jython although it is on 2.7 at the moment. Also there's Clojure (my current fav), Scala, JRuby, Groovy and more. Maybe having a choice languages could be a benefit, I'm not sure. A lot of things you mention, however... it is kind of a wash. Python has a nice rapid development with dynamic types, but Java's static types could give you an extra level of assurance. I guess you see a lot of tradeoffs which is perhaps why you're asking :P I think the availability of people is getting to be the same, although there are more Java people. Java people maybe worked with just one kind of large project, whereas Python people may be more varied and wider in their experiences. A lot of corporate industry types may appreciate a Java stack, but then again a Python stack may speak to some sense of agility. Both, like PHP, allow for integration with native code. As far as obfuscation goes, that's all an arms race. You can distribute compiled versions of each language sure, but I've also seen a lot of reverse engineering tools aimed at obfuscation schemes in just about any language... My general political advice would be to focus on other competitive advantages than your specific implementations in providing value. I guess I see that all as a silly game technically, and a huge risk legally and financially, but IANAL. I am too busy innovating than to treat people as suspect ;p Really probably anything other than PHP will be a breath of fresh air, although I do understand PHP to have some neat modern cool things going on these days. A lot of those innovations are copied from concepts in Java, though. So are some of the cool things in Python! Hope this helps! It is probably too opinionated. I do accept money for this advice. -t Hi Pythonistas, TL;DR: For enterprise system development needs, is Python a viable option versus Java? How can I convince a team with dominant number of Java-trained engineers moving away from Php to pick Python over Java? What we do: Our team is transitioning from targeting startup customers within the telecommunications industry, towards enterprise customers with mature custom systems. We currently build our web-based systems in a service-oriented architecture (almost), and will be forsaking Php for either Java or Python for future development. Furthermore, we might possibly be shifting to shrink-wrapped systems as well. We are at a major turning point in deciding on scrapping what we have built and coming up with a new maintainable system fit for enterprise demands. Non-technical Considerations: 1) Industry Bias (sales consideration) Our new customers' (especially decision makers) tend to have preconceived notions regarding the languages used for software development. It's a fight between convincing them or yielding to their preference (which incurs large costs). 2) Protecting I/P by obfuscation (self-preservation consideration) The need for protecting our I/P when customers insist they need to keep things local and secure. Which means they get access to code (source or not) of the system being deployed, i.e. the cloud is not an option. 3) Availability of resource for hiring to build and maintain system Technical-related Considerations: 1) Inter-communicating with existing enterprise systems - WSDL seems to be really needed 2) Speed of report generation - Multi-processing / Multi-threading capabilities 3) Development speed (agility) - Availability and ease of use of libraries - Language features - Types of Frameworks that are capable enough to be used for enterprise requirements -- e.g. spring, hibernate, J2ee VS Django, Web2py 4) Availability of development tools - Developer tools which enhance workflow - Testing frameworks 5) Code maintainability 6) Ease of deployment Given that this is a Python mailing list, I'm expecting more biased responses. However, hopefully folks with experience in both languages could discuss the merits of Java VS Python, specifically towards the well-being (pain) of the team moving forward and consideration for bottom-line (customer segment). Thank you in advance, Kenneth _______________________________________________ CentralOH mailing list CentralOH at python.org https://mail.python.org/mailman/listinfo/centraloh -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.costlow at gmail.com Sat May 23 16:18:20 2015 From: brian.costlow at gmail.com (Brian Costlow) Date: Sat, 23 May 2015 10:18:20 -0400 Subject: [CentralOH] Python for Developing Enterprise Systems? In-Reply-To: References: Message-ID: I'm with Thomas on a lot of these points. If you need SOAP, with Python, you will probably find yourself doing a lot of work on one or more of Python's SOAP libraries. The details are fuzzy as it's been 5 years or so, but the last time I did this, we were on a tight schedule without time to do that, so ended up using one library to create our endpoints and another for connecting to other endpoints to get around issues. The developer tradeoff. You fill find *more* Java developers. As an average, the Python pool will be *better* developers. As far as IP. If a smart programmer knows what your product does, she/he can reinvent it without looking at your code. If you are worried about your *customers* stealing from you, here's an anecdote: I used to work on software that was encrypted and hardware key protected PHP. In our North & South American, Western European, and Japanese markets, nobody would have made an extra copy anyways, because they wanted support/upgrades etc. Meanwhile, we did have rampant piracy in Russia and parts of Asia. That wasn't individual users, but rogue consulting firms that were selling and supporting cracked copies of the software. That only happened where the legal system wouldn't let us stop it. The encryption and keys were a big waste of time... and given what we were doing, we would have been better off using Perl or Python, but management forbid it because we could not 'protect the source code'. One advantage to Python over Java is clarity. You can write bad, hard to reason about code in either language. But in general, well written Python will be easier to read and reason about than well written Java. Which becomes important when someone who didn't write the original has to fix bugs or add functions (or even the person who did write it has to look at it a year later). But using other languages on the JVM can provide some of the same effect. On Sat, May 23, 2015 at 3:51 AM, Thomas Winningham wrote: > Having extensively messed with a lot of this, I have a few points but > others should chime in too. > > I might lean towards Java actually, but maybe just barely. > > - SOAP ... Python has it, but it is an aging set of libraries... Most > Python frameworks focus on REST. There are perhaps ways to bridge this gap, > like writing SOAP <-> REST adapters in Java only where needed, or some > other product that focuses on this very common need. > > - Performance (maybe) .... Threads are Java's life ... But then again, > things like uWSGI can make Python concurrency astounding for web stuff if > you let it do the work. JVMs in theory are just "nicer." Pypy is used here > and there, experimentally, but uWSGI is indeed very cool. You can always > use C. > > - Language ecosystem... You could for instance use Jython although it is > on 2.7 at the moment. Also there's Clojure (my current fav), Scala, JRuby, > Groovy and more. Maybe having a choice languages could be a benefit, I'm > not sure. > > A lot of things you mention, however... it is kind of a wash. Python has a > nice rapid development with dynamic types, but Java's static types could > give you an extra level of assurance. > > I guess you see a lot of tradeoffs which is perhaps why you're asking :P > > I think the availability of people is getting to be the same, although > there are more Java people. Java people maybe worked with just one kind of > large project, whereas Python people may be more varied and wider in their > experiences. > > A lot of corporate industry types may appreciate a Java stack, but then > again a Python stack may speak to some sense of agility. Both, like PHP, > allow for integration with native code. > > As far as obfuscation goes, that's all an arms race. You can distribute > compiled versions of each language sure, but I've also seen a lot of > reverse engineering tools aimed at obfuscation schemes in just about any > language... My general political advice would be to focus on other > competitive advantages than your specific implementations in providing > value. I guess I see that all as a silly game technically, and a huge risk > legally and financially, but IANAL. I am too busy innovating than to treat > people as suspect ;p > > Really probably anything other than PHP will be a breath of fresh air, > although I do understand PHP to have some neat modern cool things going on > these days. A lot of those innovations are copied from concepts in Java, > though. So are some of the cool things in Python! > > Hope this helps! It is probably too opinionated. I do accept money for > this advice. > > -t > Hi Pythonistas, > > TL;DR: For enterprise system development needs, is Python a viable option > versus Java? How can I convince a team with dominant number of Java-trained > engineers moving away from Php to pick Python over Java? > > > What we do: > > Our team is transitioning from targeting startup customers within the > telecommunications industry, towards enterprise customers with mature > custom systems. > > We currently build our web-based systems in a service-oriented > architecture (almost), and will be forsaking Php for either Java or Python > for future development. Furthermore, we might possibly be shifting to > shrink-wrapped systems as well. > > We are at a major turning point in deciding on scrapping what we have > built and coming up with a new maintainable system fit for enterprise > demands. > > > Non-technical Considerations: > > 1) Industry Bias (sales consideration) > Our new customers' (especially decision makers) tend to have preconceived > notions regarding the languages used for software development. It's a fight > between convincing them or yielding to their preference (which incurs > large costs). > > 2) Protecting I/P by obfuscation (self-preservation consideration) > The need for protecting our I/P when customers insist they need to keep > things local and secure. Which means they get access to code (source or > not) of the system being deployed, i.e. the cloud is not an option. > > 3) Availability of resource for hiring to build and maintain system > > > Technical-related Considerations: > > 1) Inter-communicating with existing enterprise systems > - WSDL seems to be really needed > > 2) Speed of report generation > - Multi-processing / Multi-threading capabilities > > 3) Development speed (agility) > - Availability and ease of use of libraries > - Language features > - Types of Frameworks that are capable enough to be used for enterprise > requirements > -- e.g. spring, hibernate, J2ee VS Django, Web2py > > 4) Availability of development tools > - Developer tools which enhance workflow > - Testing frameworks > > 5) Code maintainability > > 6) Ease of deployment > > Given that this is a Python mailing list, I'm expecting more biased > responses. However, hopefully folks with experience in both languages could > discuss the merits of Java VS Python, specifically towards the well-being > (pain) of the team moving forward and consideration for bottom-line > (customer segment). > > > Thank you in advance, > Kenneth > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Sat May 23 19:05:48 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Sat, 23 May 2015 13:05:48 -0400 Subject: [CentralOH] Eschew^H^H^H^H^Hmbrace Obfuscation In-Reply-To: References: Message-ID: <20150523130548.5285e360.jep200404@columbus.rr.com> On Sat, 23 May 2015 11:07:56 +0800, Kenneth Wee wrote: > 2) Protecting I/P by obfuscation (self-preservation consideration) > The need for protecting our I/P when customers insist they need to keep > things local and secure. Which means they get access to code (source or > not) of the system being deployed, i.e. the cloud is not an option. Of course the best obfuscation is by mediocre programmers, but then _nobody_ would understand the code. If what you are trying to hide is some little algorithm, that is hard to hide in any language. Skype spent much work on obfuscating their stuff. It was cracked. How much of what you are doing is truly novel? A big complicated enterprised application would be harder to understand, even before getting to reverse- engineering. Otherwise, write good code, then run your code through an obfuscator, which mangles the names, then ship only the .pyc files. https://duckduckgo.com/html/?q=python+obfuscation http://www.simonroses.com/2013/10/appsec-myths-about-obfuscation-and-reversing-python/ At some point, it's easier to rewrite from scratch than to reverse engineer obfuscated code. The business folks should keep that in mind. The need for updates could make reverse-engineering less attractive, because that would be like maintaining a private fork. From jep200404 at columbus.rr.com Sat May 23 21:43:04 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Sat, 23 May 2015 15:43:04 -0400 Subject: [CentralOH] Eschew^H^H^H^H^Hmbrace Obfuscation In-Reply-To: <20150523130548.5285e360.jep200404@columbus.rr.com> References: <20150523130548.5285e360.jep200404@columbus.rr.com> Message-ID: <20150523154304.1317f1f0.jep200404@columbus.rr.com> On Sat, 23 May 2015 13:05:48 -0400, jep200404 at columbus.rr.com wrote: > https://duckduckgo.com/html/?q=python+obfuscation The above led to the following, which seems to be a pretty good summary of the benefits and drawbacks, both technical and business of the various ways of obfuscating Python. http://stackoverflow.com/questions/261638/how-do-i-protect-python-code From jep200404 at columbus.rr.com Sat May 23 23:30:29 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Sat, 23 May 2015 17:30:29 -0400 Subject: [CentralOH] =?utf-8?q?2015-05-22_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gdW5wYWNraW5nIHNldHM7IHJhdyBzdHJpbmcgZmxh?= =?utf-8?q?w=3B_one_hand_clapping_rodeo_panera_lemon_pi_sushi_turing_test_?= =?utf-8?q?hinting_class_example_kali_backtrack_scapy_toehead_violent_pyth?= =?utf-8?q?on?= Message-ID: <20150523173029.2b080042.jep200404@columbus.rr.com> unpacking works on sets in addition to the usual suspects. this surprised me a little bit sensei at dojo:~$ python Python 2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a, b, c = {3, 5, 8} >>> b 3 >>> a, b, c = {3: 9, 5: 25, 8: 64} >>> b 3 >>> a, b, c = [3, 5, 8] >>> b 5 >>> a, b, c = (3, 5, 8) >>> b 5 >>> a, b, c = '358' >>> b '5' >>> sensei at dojo:~$ raw strings are not quite raw this surprised an MS Windows user much sensei at dojo:~$ python Python 2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> s = r'c:\blah\' File "", line 1 s = r'c:\blah\' ^ SyntaxError: EOL while scanning string literal >>> sensei at dojo:~$ https://mail.python.org/pipermail/centraloh/2015-January/002310.html The sound of one hand clapping. sensei at dojo:~/20150522$ python Python 2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = ['hello'] # a is a list >>> a ['hello'] >>> a, = ['hello'] # a is a string >>> a 'hello' >>> sensei at dojo:~/20150522$ wp: prefix means Wikipedia To get good answers, consider following the advice in the links below. http://catb.org/~esr/faqs/smart-questions.html http://web.archive.org/web/20090627155454/www.greenend.org.uk/rjk/2000/06/14/quoting.html 9 folks - Are we outgrowing Panera? turing test in media http://dilbert.com/strip/2015-05-22 wp:The Imitation Game wp:Jiro Dreams of Sushi batch file powershell bash cygwin http://www.itrunsonlinux.com/hardware/lemon-pi-a-powerful-raspberry-pi-clone/ https://en.wikipedia.org/wiki/Moto_G_(1st_generation) https://en.wikipedia.org/wiki/Republic_Wireless http://www.bestbuy.com/site/boost-mobile-motorola-moto-g-no-contract-cell-phone-black/3135008.p?id=1219088033418&skuId=3135008 http://www.bestbuy.com/site/motorola-moto-g-2nd-generation-cell-phone-unlocked-u-s-version-black/9055007.p?id=1219387046337&skuId=9055007 http://www.bestbuy.com/site/motorola-moto-g-2nd-generation-cell-phone-unlocked-u-s-version-black/9055007.p?id=1219387046337&skuId=9055007 http://www.bestbuy.com/site/verizon-wireless-prepaid-motorola-moto-g-no-contract-cell-phone-black/3041063.p?id=1219086346405&skuId=3041063 rodeo an ide for data analysis in python (cloned R studio) https://pypi.python.org/pypi/rodeo http://www.zdnet.com/article/mark-shuttleworth-considering-canonical-ipo/ http://www.heinleinsociety.org/rah/thisibelieve.html All problems become software problems. http://learnxinyminutes.com/ [Distutils] Released: pip 7.0 and virtualenv 13.0 https://mail.python.org/pipermail/distutils-sig/2015-May/026474.html Python 3.5 type hinting https://www.python.org/dev/peps/pep-0484/ wp:Kali Linux wp:BackTrack Lemon Pi http://www.itrunsonlinux.com/hardware/lemon-pi-a-powerful-raspberry-pi-clone/ http://tuxmachines.org/node/76251 https://dgillart.wordpress.com/tag/toeheads/ https://www.facebook.com/MOUTONonHigh?_fb_noscript=1 violent python scapy https://pypi.python.org/pypi/scapy wp:Talk to the hand http://english.chosun.com/site/data/html_dir/2015/05/22/2015052201633.html ==> stupid_class_example.py <== from __future__ import print_function class Player(): def __init__(self, name, average): self.name = name self.average = average def __str__(self): return 'Player name: %s average: %s' % (self.name, self.average) class Team(): def __init__(self, players): self.players = players def max_average(self): # return max(player.average for player in self.players) highest_average = 0.0 for player in self.players: if player.average > highest_average: highest_average = player.average return highest_average def __str__(self): return ', '.join([str(player) for player in self.players]) f = Player('Bob', .234) g = Player('Joe', .345) t = Team([f, g]) print(f) print(t) print(t.max_average()) From vken85 at gmail.com Sun May 24 18:54:01 2015 From: vken85 at gmail.com (Kenneth Wee) Date: Mon, 25 May 2015 00:54:01 +0800 Subject: [CentralOH] Python for Developing Enterprise Systems? Message-ID: Thanks to Thomas and Brian for the insightful advice, much appreciated. Thanks to Jim for the relevant articles on obfuscation too. I concur with many of the points raised and had deliberated on many of the points myself too. In regards to the inter-communication protocol. I've dabbled with libraries like pysimplesoap and suds, especially the jurko-suds fork. I've used them as a consumer/client of WSDL/SOAP services, but never as a server. Not sure whether there is already something out there to be as a server. I use jurko-suds for the ability to use green threads for "concurrency", but suds is sometimes unable to parse the WSDL schema properly if it is extended with `xmlns:s1="http://microsoft.com/wsdl/types/"`. Pysimplesoap is usable here but I'm not sure how to tear it apart use with grequests yes. Although I'm not sure about the equivalent in Java's ecosystem, I'm of the assumption they already have mature libraries supporting it, both as server and client. With regards to concurrency, I've been using green threads through grequests library to consume WSDL/SOAP services. The multiprocessing module in python has an existing bug (i think it is one) which has not been fixed. http://bugs.python.org/issue8296 http://bugs.python.org/issue9205 http://bugs.python.org/issue22393 I'm not too good at understanding and using the multiprocessing, so I gave up on it for one project due to pressing deadlines. As Thomas has said, "Threads are Java's life". I'm not sure if I were to pull out python-celery + zeromq/rabbitmq as an alternative, it will comparable with existing Java offerings. With regards to my perception of tradeoffs that Thomas pointed out, one of the concerns is raised by Brian, specifically to hiring and code clarity. >From my anecdotal experience in hiring, it fits Brian's observation of getting better quality programmers. If we're going to shift over to Java, I have a feeling I'm going to have greater difficulties hiring people, and the signal-to-noise ratio is going to be much lower. Code maintenance with Python, to me, will be less of an effort with the conciseness and less mistakes made if there are less code to type. If the argument boils down to dev tools, code linters, and other conveniences of differing IDEs, this slippery slope will go to no end. With regards to obfuscation, I agree with the view about arms race and also the discussion about the point of it all. I've searched many sources, and has chanced by this http://bits.citrusbyte.com/protecting-a-python-codebase/ Unfortunately, Investors are not that hard to convince. In addition, if the end goal is going to be something autonomous, the fear of ending up like the piracy rates of windows XP, and being tapped on by competitors, is clawing on the decision-makers' nerves. Perhaps the business model would need to be re-examined and Redhat's model might prove to be a good starting point for consideration? With regards to customer's expectation, of using a "familiarly safe and proven" language, I'm not doing the sales, and even if I am, I'm not sure the success rate of convincing when the other party's stakes are extremely high on the purchasing decision. The bigger discussion even before the language choice, is about having one-language-to-rule-them-all being more efficient when moving developer resources across different part of the projects (which in itself merits more arguments about inefficiencies of context-switching of projects). It is generally acknowledged that it will strain developers who have to pick up a new language if we have multiple different projects in different language for the SOA architecture. The assessment about choices of available frameworks in each language to fit our requirements is, at best, very fuzzy at the moment due to insufficient information on the problem-solution fit. I'm all for "using the best tool for the job", and have a preference towards language pluralism. If needed, I'll even push for JVM languages like Clojure and Scala. However, with the arguments above on hiring talents, to current developer pool skills, to developer resource mobility between projects, to customer confidence, it looks like a difficult proposition on my part. If it is going to be a single-language decision, then you all know my biased preference. In spite of my bias, I still need to be pragmatic about the decision to best serve the team in all the aspects of considerations. Thanks to everyone again for the valuable advice. On 23 May 2015 at 22:18, Brian Costlow wrote: I'm with Thomas on a lot of these points. > > If you need SOAP, with Python, you will probably find yourself doing a lot > of work on one or more of Python's SOAP libraries. The details are fuzzy as > it's been 5 years or so, but the last time I did this, we were on a tight > schedule without time to do that, so ended up using one library to create > our endpoints and another for connecting to other endpoints to get around > issues. > > The developer tradeoff. You fill find *more* Java developers. As an > average, the Python pool will be *better* developers. > > As far as IP. If a smart programmer knows what your product does, she/he > can reinvent it without looking at your code. If you are worried about your > *customers* stealing from you, here's an anecdote: > > I used to work on software that was encrypted and hardware key protected > PHP. In our North & South American, Western European, and Japanese markets, > nobody would have made an extra copy anyways, because they wanted > support/upgrades etc. Meanwhile, we did have rampant piracy in Russia and > parts of Asia. That wasn't individual users, but rogue consulting firms > that were selling and supporting cracked copies of the software. That only > happened where the legal system wouldn't let us stop it. The encryption and > keys were a big waste of time... and given what we were doing, we would > have been better off using Perl or Python, but management forbid it because > we could not 'protect the source code'. > > One advantage to Python over Java is clarity. You can write bad, hard to > reason about code in either language. But in general, well written Python > will be easier to read and reason about than well written Java. Which > becomes important when someone who didn't write the original has to fix > bugs or add functions (or even the person who did write it has to look at > it a year later). But using other languages on the JVM can provide some of > the same effect. > > On Sat, May 23, 2015 at 3:51 AM, Thomas Winningham > wrote: > > Having extensively messed with a lot of this, I have a few points but >> others should chime in too. >> I might lean towards Java actually, but maybe just barely. >> - SOAP ... Python has it, but it is an aging set of libraries... Most >> Python frameworks focus on REST. There are perhaps ways to bridge this gap, >> like writing SOAP <-> REST adapters in Java only where needed, or some >> other product that focuses on this very common need. >> - Performance (maybe) .... Threads are Java's life ... But then again, >> things like uWSGI can make Python concurrency astounding for web stuff if >> you let it do the work. JVMs in theory are just "nicer." Pypy is used here >> and there, experimentally, but uWSGI is indeed very cool. You can always >> use C. >> - Language ecosystem... You could for instance use Jython although it is >> on 2.7 at the moment. Also there's Clojure (my current fav), Scala, JRuby, >> Groovy and more. Maybe having a choice languages could be a benefit, I'm >> not sure. >> A lot of things you mention, however... it is kind of a wash. Python has >> a nice rapid development with dynamic types, but Java's static types could >> give you an extra level of assurance. >> I guess you see a lot of tradeoffs which is perhaps why you're asking :P >> I think the availability of people is getting to be the same, although >> there are more Java people. Java people maybe worked with just one kind of >> large project, whereas Python people may be more varied and wider in their >> experiences. >> A lot of corporate industry types may appreciate a Java stack, but then >> again a Python stack may speak to some sense of agility. Both, like PHP, >> allow for integration with native code. >> As far as obfuscation goes, that's all an arms race. You can distribute >> compiled versions of each language sure, but I've also seen a lot of >> reverse engineering tools aimed at obfuscation schemes in just about any >> language... My general political advice would be to focus on other >> competitive advantages than your specific implementations in providing >> value. I guess I see that all as a silly game technically, and a huge risk >> legally and financially, but IANAL. I am too busy innovating than to treat >> people as suspect ;p >> Really probably anything other than PHP will be a breath of fresh air, >> although I do understand PHP to have some neat modern cool things going on >> these days. A lot of those innovations are copied from concepts in Java, >> though. So are some of the cool things in Python! >> Hope this helps! It is probably too opinionated. I do accept money for >> this advice. >> -t >> Hi Pythonistas, >> >> TL;DR: For enterprise system development needs, is Python a viable option >> versus Java? How can I convince a team with dominant number of Java-trained >> engineers moving away from Php to pick Python over Java? >> >> >> What we do: >> >> Our team is transitioning from targeting startup customers within the >> telecommunications industry, towards enterprise customers with mature >> custom systems. >> >> We currently build our web-based systems in a service-oriented >> architecture (almost), and will be forsaking Php for either Java or Python >> for future development. Furthermore, we might possibly be shifting to >> shrink-wrapped systems as well. >> >> We are at a major turning point in deciding on scrapping what we have >> built and coming up with a new maintainable system fit for enterprise >> demands. >> >> >> Non-technical Considerations: >> >> 1) Industry Bias (sales consideration) >> Our new customers' (especially decision makers) tend to have preconceived >> notions regarding the languages used for software development. It's a fight >> between convincing them or yielding to their preference (which incurs >> large costs). >> >> 2) Protecting I/P by obfuscation (self-preservation consideration) >> The need for protecting our I/P when customers insist they need to keep >> things local and secure. Which means they get access to code (source or >> not) of the system being deployed, i.e. the cloud is not an option. >> >> 3) Availability of resource for hiring to build and maintain system >> >> >> Technical-related Considerations: >> >> 1) Inter-communicating with existing enterprise systems >> - WSDL seems to be really needed >> >> 2) Speed of report generation >> - Multi-processing / Multi-threading capabilities >> >> 3) Development speed (agility) >> - Availability and ease of use of libraries >> - Language features >> - Types of Frameworks that are capable enough to be used for enterprise >> requirements >> -- e.g. spring, hibernate, J2ee VS Django, Web2py >> >> 4) Availability of development tools >> - Developer tools which enhance workflow >> - Testing frameworks >> >> 5) Code maintainability >> >> 6) Ease of deployment >> >> Given that this is a Python mailing list, I'm expecting more biased >> responses. However, hopefully folks with experience in both languages could >> discuss the merits of Java VS Python, specifically towards the well-being >> (pain) of the team moving forward and consideration for bottom-line >> (customer segment). >> >> >> Thank you in advance, >> Kenneth >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> >> >> _______________________________________________ >> >>> CentralOH mailing list >> >>> CentralOH at python.org >> >>> https://mail.python.org/mailman/listinfo/centraloh >> >> > _______________________________________________ > >> CentralOH mailing list > >> CentralOH at python.org > >> https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From smashing_good_show at hotmail.com Tue May 26 21:05:16 2015 From: smashing_good_show at hotmail.com (timothy spencer) Date: Tue, 26 May 2015 12:05:16 -0700 Subject: [CentralOH] Python Hack night, tomorrow, wednesday. Message-ID: I know a Python programmer, Hermann Singh, and he is having a hack night at his office tomorrow, Wednesday. It will be an informal and fun hack night we knowledge and experience is to be shared, like in lightning talks. He has his own company where he programs in Python. Anyone is welcome, social networking encouraged. It should be fun. Here is the information and address of his office: 6:30 on Wednesday. 7913 Station St Sorry for the short notice, but I bumped into him yesterday. -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Tue May 26 22:15:46 2015 From: eric at intellovations.com (Eric Floehr) Date: Tue, 26 May 2015 16:15:46 -0400 Subject: [CentralOH] May Monthly Meeting, even better in June! Message-ID: RSVP here: http://www.meetup.com/Central-Ohio-Python-Users-Group/events/221848038/ Because of the Memorial Day holiday, we are meeting a week later on June 1. Yes, it is still our May meeting :-D. We will be meeting at Pillar as usual. The informal meeting will begin at 6:00pm, with the formal presentation starting promptly at 6:30pm. Raymond Chandler will be speaking on behavior driven development in Python. Behavior-driven development (or BDD) is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project. Behave uses tests written in a natural language style, backed up by Python code. Raymond will teach you how to easily beef up your integrations tests using Python and Gherkin with the Behave BDD Framework. Testing doesn?t have to be hard. Behave makes it easy and fun. After the formal meeting we will adjourn to Brazenhead on 5th. Brazenhead has lots of yummy food choices, and many non-alcoholic beverages. Drinking is neither encouraged nor discouraged, and your choices will be respected by the group. RSVP for the after-meeting here: http://www.meetup.com/Central-Ohio-Python-Users-Group/events/221848091/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Wed May 27 04:36:17 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Tue, 26 May 2015 22:36:17 -0400 Subject: [CentralOH] Python Hack night, tomorrow, wednesday. In-Reply-To: References: Message-ID: <20150526223617.4cbff183.jep200404@columbus.rr.com> On Tue, 26 May 2015 12:05:16 -0700, timothy spencer wrote: > I know a Python programmer, Hermann Singh, and he is having a hack night at his > > Here is the information and address of his office: > > 6:30 on Wednesday. 7913 Station St Worthington? Northern Franklin County? South of Park Rd? > Sorry for the short notice, but I bumped into him yesterday. If someone (perhaps Herman) gets more info, please post it. Perhaps someone would update the cohpy.org meetup page for it. Herman picked a busy night with much competition. Wednesday 18:30 Columbus Code Jam 19:00 GirlDevelopIT Hack Night 19:00 COLUG Monthly Meeting From smashing_good_show at hotmail.com Wed May 27 16:28:18 2015 From: smashing_good_show at hotmail.com (timothy spencer) Date: Wed, 27 May 2015 07:28:18 -0700 Subject: [CentralOH] CentralOH Digest, Vol 97, Issue 14 In-Reply-To: References: Message-ID: I am pretty sure that it's up by park street in the northern sector. I will let him know that Wednesdays have a lot going on in general too. > From: centraloh-request at python.org > Subject: CentralOH Digest, Vol 97, Issue 14 > To: centraloh at python.org > Date: Wed, 27 May 2015 12:00:02 +0200 > > Send CentralOH mailing list submissions to > centraloh at python.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://mail.python.org/mailman/listinfo/centraloh > or, via email, send a message with subject or body 'help' to > centraloh-request at python.org > > You can reach the person managing the list at > centraloh-owner at python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of CentralOH digest..." > > > Today's Topics: > > 1. Python Hack night, tomorrow, wednesday. (timothy spencer) > 2. May Monthly Meeting, even better in June! (Eric Floehr) > 3. Re: Python Hack night, tomorrow, wednesday. > (jep200404 at columbus.rr.com) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 26 May 2015 12:05:16 -0700 > From: timothy spencer > To: "centraloh at python.org" > Subject: [CentralOH] Python Hack night, tomorrow, wednesday. > Message-ID: > Content-Type: text/plain; charset="iso-8859-1" > > I know a Python programmer, Hermann Singh, and he is having a hack night at his office tomorrow, Wednesday. It will be an informal and fun hack night we knowledge and experience is to be shared, like in lightning talks. He has his own company where he programs in Python. Anyone is welcome, social networking encouraged. It should be fun. > > Here is the information and address of his office: > > 6:30 on Wednesday. 7913 Station St > > Sorry for the short notice, but I bumped into him yesterday. > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Message: 2 > Date: Tue, 26 May 2015 16:15:46 -0400 > From: Eric Floehr > To: Central Ohio Python Users Group > Subject: [CentralOH] May Monthly Meeting, even better in June! > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > RSVP here: > http://www.meetup.com/Central-Ohio-Python-Users-Group/events/221848038/ > > Because of the Memorial Day holiday, we are meeting a week later on June 1. > Yes, it is still our May meeting :-D. We will be meeting at Pillar as usual. > > The informal meeting will begin at 6:00pm, with the formal presentation > starting promptly at 6:30pm. > > Raymond Chandler will be speaking on behavior driven development in Python. > > Behavior-driven development (or BDD) is an agile software development > technique that encourages collaboration between developers, QA and > non-technical or business participants in a software project. Behave > uses tests written in a natural > language style, backed up by Python code. > Raymond will teach you how to easily beef up your integrations tests using > Python and Gherkin with the Behave BDD Framework. Testing doesn?t have to > be hard. Behave makes it easy and fun. > > > > After the formal meeting we will adjourn to Brazenhead on 5th. Brazenhead > has lots of yummy food choices, and many non-alcoholic beverages. Drinking > is neither encouraged nor discouraged, and your choices will be respected > by the group. > > RSVP for the after-meeting here: > http://www.meetup.com/Central-Ohio-Python-Users-Group/events/221848091/ > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Message: 3 > Date: Tue, 26 May 2015 22:36:17 -0400 > From: jep200404 at columbus.rr.com > To: "Mailing list for Central Ohio Python User Group \(COhPy\)" > > Subject: Re: [CentralOH] Python Hack night, tomorrow, wednesday. > Message-ID: <20150526223617.4cbff183.jep200404 at columbus.rr.com> > Content-Type: text/plain; charset=US-ASCII > > On Tue, 26 May 2015 12:05:16 -0700, timothy spencer wrote: > > > I know a Python programmer, Hermann Singh, and he is having a hack night at his > > > > Here is the information and address of his office: > > > > 6:30 on Wednesday. 7913 Station St > > Worthington? Northern Franklin County? South of Park Rd? > > > Sorry for the short notice, but I bumped into him yesterday. > > If someone (perhaps Herman) gets more info, please post it. > Perhaps someone would update the cohpy.org meetup page for it. > > Herman picked a busy night with much competition. Wednesday > > 18:30 Columbus Code Jam > 19:00 GirlDevelopIT Hack Night > 19:00 COLUG Monthly Meeting > > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > > ------------------------------ > > End of CentralOH Digest, Vol 97, Issue 14 > ***************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Thu May 28 21:51:39 2015 From: eric at intellovations.com (Eric Floehr) Date: Thu, 28 May 2015 15:51:39 -0400 Subject: [CentralOH] Call for Proposals (PyOhio and LinuxFest) Message-ID: There are just a few more days to get your talk, tutorial, or openspace proposal in for PyOhio. The last day to submit is Monday, June 1. As one closes, another opens. The call for proposals for the Ohio Linux Fest, which will be October 2-3, 2015 at the Columbus Convention Center, has opened. The Ohio Linux Fest always has a few Python talks (I talked there last year about my timelapse project) and I found the audience was interested, inquisitive, and provided me with some great ideas to pursue. The deadline for OLF is Friday, July 16. You can submit your proposals here: http://www.ohiolinux.org/content/2015-call-presentations-now-open -Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Thu May 28 14:54:02 2015 From: eric at intellovations.com (Eric Floehr) Date: Thu, 28 May 2015 08:54:02 -0400 Subject: [CentralOH] Python Puzzler: Room scheduling Message-ID: How would you go about figuring out the best room schedule in Python? This is a real optimization problem my wife's high school department has. You have three classrooms: R1, R2, R3 The day is segmented into 7 periods. Each classroom can be used all 7 periods, or not. There are 4 teachers. Each teacher needs to teach class for 5 periods, but they can be any of the 7 periods of the day. Each teacher has one period where they can't teach (listed), and one period where they won't have to teach that can be any period of the day: Ms. Anderson, can't teach period 6 Mr. Boxleitner, can't teach period 2 Ms. Chastain, can't teach period 7 Mr. Duchovny, can't teach period 3 Additionally, Ms. Chastain must teach in the same room for all 5 of her class periods. The other three teachers can move rooms as necessary. What is the "optimal" arrangement of teachers in rooms to meet these constraints? "Optimal" means: 1. Fewest room changes, where a room change is defined as a teacher moving from one room to another. For example, if Ms. A seven period schedule is: period 6 and 7 off, and period 1 in room 1, period 2 in room 2, period 3 in room 2, period 4 in room 1 and period 5 in room 2, that is three total room changes. 2. Lowest average room changes per teacher. I.e. 3 teachers moving once is preferable to 1 teacher moving 3 times. 3. A room change with a break in between is preferable to an immediate room change. A "break" is either the teacher's free period or their "can't teach" period. For example, if Ms. A teaches in room 1 every period except period 7 where she teaches in room 2, that's preferable to teaching period 1 in room 2 and then period 2 (and other periods) in room 1. Beyond that, there is no "right" answer. How do you go about providing "good" solutions in Python? -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe at joeshaw.org Thu May 28 22:20:47 2015 From: joe at joeshaw.org (Joe Shaw) Date: Thu, 28 May 2015 20:20:47 +0000 Subject: [CentralOH] Python Puzzler: Room scheduling In-Reply-To: References: Message-ID: Hi, At first blush this looks a bit like a graph or tree problem to me. The way I would go about modeling this is that each period change would be a node on the tree and would incur a penalty score of some sort. Moving a teacher might incur a penalty of 1, for instance. Maybe that number increases exponentially as the teacher is subsequently moved, in order to satisfy condition #2. Completely disallowed moves would incur a huge penalty (say, 1000 whereas other penalties are in the 1-10 range) like Ms. Anderson being assigned to teach period 6 or Ms. Chastain being moved to other rooms. A score of 0 is the optimal (but maybe impossible) result with this scoring heuristic. If you do depth first search you can then completely prune branches of the tree as soon as they incur a penalty greater than the best path seen so far. You could also prune with a breadth first search but then you have to track more state as you go along. Joe On Thu, May 28, 2015 at 4:05 PM Eric Floehr wrote: > How would you go about figuring out the best room schedule in Python? This > is a real optimization problem my wife's high school department has. > > You have three classrooms: R1, R2, R3 > > The day is segmented into 7 periods. Each classroom can be used all 7 > periods, or not. > > There are 4 teachers. Each teacher needs to teach class for 5 periods, but > they can be any of the 7 periods of the day. Each teacher has one period > where they can't teach (listed), and one period where they won't have to > teach that can be any period of the day: > > Ms. Anderson, can't teach period 6 > Mr. Boxleitner, can't teach period 2 > Ms. Chastain, can't teach period 7 > Mr. Duchovny, can't teach period 3 > > Additionally, Ms. Chastain must teach in the same room for all 5 of her > class periods. The other three teachers can move rooms as necessary. > > What is the "optimal" arrangement of teachers in rooms to meet these > constraints? "Optimal" means: > > 1. Fewest room changes, where a room change is defined as a teacher moving > from one room to another. For example, if Ms. A seven period schedule is: > period 6 and 7 off, and period 1 in room 1, period 2 in room 2, period 3 in > room 2, period 4 in room 1 and period 5 in room 2, that is three total room > changes. > > 2. Lowest average room changes per teacher. I.e. 3 teachers moving once is > preferable to 1 teacher moving 3 times. > > 3. A room change with a break in between is preferable to an immediate > room change. A "break" is either the teacher's free period or their "can't > teach" period. For example, if Ms. A teaches in room 1 every period except > period 7 where she teaches in room 2, that's preferable to teaching period > 1 in room 2 and then period 2 (and other periods) in room 1. > > Beyond that, there is no "right" answer. > > How do you go about providing "good" solutions in Python? > > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lenjaffe at jaffesystems.com Thu May 28 23:21:40 2015 From: lenjaffe at jaffesystems.com (Len Jaffe) Date: Thu, 28 May 2015 17:21:40 -0400 Subject: [CentralOH] Python Puzzler: Room scheduling In-Reply-To: References: Message-ID: I agree that it's a graph traversal model, but IMO you model rooms as nodes, and period changes are edges, with a room change having a cost of 1 and no-change having a cost of 0. I think that given the relatively small number of permutations of teachers in classrooms vs cheap computing power, you could generate the graph entire state space first. Also a second set of weights is recorded with total changes by teacher. The "fewest total room changes" is then the minimal spanning tree of the graph. If each edge records room changes, by teacher, then the "fewest total room changes" is then the minimal spanning tree of the graph using the sum of the individual teacher-room-changes for weight, and the "lowest average room changes per teacher" is simply computing averages on the second set of states, and then sorting. This brings back fond college AI memories of writing lisp to solve one of those 9-tile numbered square puzzles with 8 numbered tiles and one empty space. Good times. On Thu, May 28, 2015 at 4:20 PM, Joe Shaw wrote: > Hi, > > At first blush this looks a bit like a graph or tree problem to me. The > way I would go about modeling this is that each period change would be a > node on the tree and would incur a penalty score of some sort. Moving a > teacher might incur a penalty of 1, for instance. Maybe that number > increases exponentially as the teacher is subsequently moved, in order to > satisfy condition #2. Completely disallowed moves would incur a huge > penalty (say, 1000 whereas other penalties are in the 1-10 range) like Ms. > Anderson being assigned to teach period 6 or Ms. Chastain being moved to > other rooms. A score of 0 is the optimal (but maybe impossible) result > with this scoring heuristic. > > If you do depth first search you can then completely prune branches of the > tree as soon as they incur a penalty greater than the best path seen so > far. You could also prune with a breadth first search but then you have to > track more state as you go along. > > Joe > > On Thu, May 28, 2015 at 4:05 PM Eric Floehr > wrote: > >> How would you go about figuring out the best room schedule in Python? >> This is a real optimization problem my wife's high school department has. >> >> You have three classrooms: R1, R2, R3 >> >> The day is segmented into 7 periods. Each classroom can be used all 7 >> periods, or not. >> >> There are 4 teachers. Each teacher needs to teach class for 5 periods, >> but they can be any of the 7 periods of the day. Each teacher has one >> period where they can't teach (listed), and one period where they won't >> have to teach that can be any period of the day: >> >> Ms. Anderson, can't teach period 6 >> Mr. Boxleitner, can't teach period 2 >> Ms. Chastain, can't teach period 7 >> Mr. Duchovny, can't teach period 3 >> >> Additionally, Ms. Chastain must teach in the same room for all 5 of her >> class periods. The other three teachers can move rooms as necessary. >> >> What is the "optimal" arrangement of teachers in rooms to meet these >> constraints? "Optimal" means: >> >> 1. Fewest room changes, where a room change is defined as a teacher >> moving from one room to another. For example, if Ms. A seven period >> schedule is: period 6 and 7 off, and period 1 in room 1, period 2 in room >> 2, period 3 in room 2, period 4 in room 1 and period 5 in room 2, that is >> three total room changes. >> >> 2. Lowest average room changes per teacher. I.e. 3 teachers moving once >> is preferable to 1 teacher moving 3 times. >> >> 3. A room change with a break in between is preferable to an immediate >> room change. A "break" is either the teacher's free period or their "can't >> teach" period. For example, if Ms. A teaches in room 1 every period except >> period 7 where she teaches in room 2, that's preferable to teaching period >> 1 in room 2 and then period 2 (and other periods) in room 1. >> >> Beyond that, there is no "right" answer. >> >> How do you go about providing "good" solutions in Python? >> >> >> >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -- Len Jaffe - Information Technology Smoke Jumper - lenjaffe at jaffesystems.com 614-404-4214 @LenJaffe www.lenjaffe.com Host of Code Jam Columbus - @CodeJamCMH Curator of Advent Planet - An Aggregation of Online Advent Calendars. -------------- next part -------------- An HTML attachment was scrubbed... URL: From melvyniandrag at gmail.com Fri May 29 02:01:18 2015 From: melvyniandrag at gmail.com (melvyniandrag at gmail.com) Date: Thu, 28 May 2015 20:01:18 -0400 Subject: [CentralOH] Python Puzzler: Room scheduling In-Reply-To: References: Message-ID: Could I just ask for clarification? By 'can be used... Or not...' You don't mean that a room must be used all 7 or not at all, right? Its that a room can be occupied by any one class or not at all at any time. Just making sure. Sent from my iPhone > On May 28, 2015, at 8:54 AM, Eric Floehr wrote: > > How would you go about figuring out the best room schedule in Python? This is a real optimization problem my wife's high school department has. > > You have three classrooms: R1, R2, R3 > > The day is segmented into 7 periods. Each classroom can be used all 7 periods, or not. > > There are 4 teachers. Each teacher needs to teach class for 5 periods, but they can be any of the 7 periods of the day. Each teacher has one period where they can't teach (listed), and one period where they won't have to teach that can be any period of the day: > > Ms. Anderson, can't teach period 6 > Mr. Boxleitner, can't teach period 2 > Ms. Chastain, can't teach period 7 > Mr. Duchovny, can't teach period 3 > > Additionally, Ms. Chastain must teach in the same room for all 5 of her class periods. The other three teachers can move rooms as necessary. > > What is the "optimal" arrangement of teachers in rooms to meet these constraints? "Optimal" means: > > 1. Fewest room changes, where a room change is defined as a teacher moving from one room to another. For example, if Ms. A seven period schedule is: period 6 and 7 off, and period 1 in room 1, period 2 in room 2, period 3 in room 2, period 4 in room 1 and period 5 in room 2, that is three total room changes. > > 2. Lowest average room changes per teacher. I.e. 3 teachers moving once is preferable to 1 teacher moving 3 times. > > 3. A room change with a break in between is preferable to an immediate room change. A "break" is either the teacher's free period or their "can't teach" period. For example, if Ms. A teaches in room 1 every period except period 7 where she teaches in room 2, that's preferable to teaching period 1 in room 2 and then period 2 (and other periods) in room 1. > > Beyond that, there is no "right" answer. > > How do you go about providing "good" solutions in Python? > > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh From eric at intellovations.com Fri May 29 03:38:12 2015 From: eric at intellovations.com (Eric Floehr) Date: Thu, 28 May 2015 21:38:12 -0400 Subject: [CentralOH] Python Puzzler: Room scheduling In-Reply-To: References: Message-ID: Yes. A room may be occupied or not in any given period. On May 28, 2015 9:20 PM, wrote: > Could I just ask for clarification? By 'can be used... Or not...' You > don't mean that a room must be used all 7 or not at all, right? Its that a > room can be occupied by any one class or not at all at any time. Just > making sure. > > Sent from my iPhone > > > On May 28, 2015, at 8:54 AM, Eric Floehr > wrote: > > > > How would you go about figuring out the best room schedule in Python? > This is a real optimization problem my wife's high school department has. > > > > You have three classrooms: R1, R2, R3 > > > > The day is segmented into 7 periods. Each classroom can be used all 7 > periods, or not. > > > > There are 4 teachers. Each teacher needs to teach class for 5 periods, > but they can be any of the 7 periods of the day. Each teacher has one > period where they can't teach (listed), and one period where they won't > have to teach that can be any period of the day: > > > > Ms. Anderson, can't teach period 6 > > Mr. Boxleitner, can't teach period 2 > > Ms. Chastain, can't teach period 7 > > Mr. Duchovny, can't teach period 3 > > > > Additionally, Ms. Chastain must teach in the same room for all 5 of her > class periods. The other three teachers can move rooms as necessary. > > > > What is the "optimal" arrangement of teachers in rooms to meet these > constraints? "Optimal" means: > > > > 1. Fewest room changes, where a room change is defined as a teacher > moving from one room to another. For example, if Ms. A seven period > schedule is: period 6 and 7 off, and period 1 in room 1, period 2 in room > 2, period 3 in room 2, period 4 in room 1 and period 5 in room 2, that is > three total room changes. > > > > 2. Lowest average room changes per teacher. I.e. 3 teachers moving once > is preferable to 1 teacher moving 3 times. > > > > 3. A room change with a break in between is preferable to an immediate > room change. A "break" is either the teacher's free period or their "can't > teach" period. For example, if Ms. A teaches in room 1 every period except > period 7 where she teaches in room 2, that's preferable to teaching period > 1 in room 2 and then period 2 (and other periods) in room 1. > > > > Beyond that, there is no "right" answer. > > > > How do you go about providing "good" solutions in Python? > > > > > > > > _______________________________________________ > > CentralOH mailing list > > CentralOH at python.org > > https://mail.python.org/mailman/listinfo/centraloh > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jocassid at gmail.com Fri May 29 06:27:28 2015 From: jocassid at gmail.com (John Cassidy) Date: Fri, 29 May 2015 00:27:28 -0400 Subject: [CentralOH] Python Puzzler: Room scheduling In-Reply-To: References: Message-ID: One question is what kind of scale are you trying to tackle? If you're scheduling classes for Ohio State where you have hundreds of faculty and hundreds of classrooms your solution might need to change. Another question is how much human intervention is wanted. I would tend to tackle this as an interactive program. Allowing the computer to render and validate the schedule and have the user place blocks in the grid. Leverage the user's ability to quickly "eyeball" openings in the schedule. Say for instance you have 20 rooms and 50 teachers. When scheduling there can be up to 4 teachers being actively scheduled. The scheduled blocks for these teachers would be color-coded red, blue, green, and yellow. At any point the user can change what teachers are active. Scheduled blocks for inactive teachers would be shown as gray. Open blocks would be shown as white. Blocks unavailable for any of the active teachers would be shown with a 'X' across the block dividing it into 4 quadrants. To indicate which of the active teachers can't use the block, one of the quadrants is filled in with the color for that teacher. When I tried to fill in the grid I started with the teacher that had to have all her classes in the same room. I then took the approach that if a teacher had a break earlier in the day schedule a block of periods late in the day and vice versa. Some Python scribblings attached. An example of how scheduling programs can go awry is a lab class I had in college. First day of class we show up at a typical blackboard & desk classroom, waited for everyone to arrive then proceeded downstairs to the lab, where we met for the rest of the quarter. They had done this to make sure that lab didn't wind up in the pool of available classrooms. I.e. we had a classroom sitting idle for a quarter to prevent some Sociology 101 class from being scheduled in the lab. On Thu, May 28, 2015 at 9:38 PM, Eric Floehr wrote: > Yes. A room may be occupied or not in any given period. > On May 28, 2015 9:20 PM, wrote: > >> Could I just ask for clarification? By 'can be used... Or not...' You >> don't mean that a room must be used all 7 or not at all, right? Its that a >> room can be occupied by any one class or not at all at any time. Just >> making sure. >> >> Sent from my iPhone >> >> > On May 28, 2015, at 8:54 AM, Eric Floehr >> wrote: >> > >> > How would you go about figuring out the best room schedule in Python? >> This is a real optimization problem my wife's high school department has. >> > >> > You have three classrooms: R1, R2, R3 >> > >> > The day is segmented into 7 periods. Each classroom can be used all 7 >> periods, or not. >> > >> > There are 4 teachers. Each teacher needs to teach class for 5 periods, >> but they can be any of the 7 periods of the day. Each teacher has one >> period where they can't teach (listed), and one period where they won't >> have to teach that can be any period of the day: >> > >> > Ms. Anderson, can't teach period 6 >> > Mr. Boxleitner, can't teach period 2 >> > Ms. Chastain, can't teach period 7 >> > Mr. Duchovny, can't teach period 3 >> > >> > Additionally, Ms. Chastain must teach in the same room for all 5 of her >> class periods. The other three teachers can move rooms as necessary. >> > >> > What is the "optimal" arrangement of teachers in rooms to meet these >> constraints? "Optimal" means: >> > >> > 1. Fewest room changes, where a room change is defined as a teacher >> moving from one room to another. For example, if Ms. A seven period >> schedule is: period 6 and 7 off, and period 1 in room 1, period 2 in room >> 2, period 3 in room 2, period 4 in room 1 and period 5 in room 2, that is >> three total room changes. >> > >> > 2. Lowest average room changes per teacher. I.e. 3 teachers moving once >> is preferable to 1 teacher moving 3 times. >> > >> > 3. A room change with a break in between is preferable to an immediate >> room change. A "break" is either the teacher's free period or their "can't >> teach" period. For example, if Ms. A teaches in room 1 every period except >> period 7 where she teaches in room 2, that's preferable to teaching period >> 1 in room 2 and then period 2 (and other periods) in room 1. >> > >> > Beyond that, there is no "right" answer. >> > >> > How do you go about providing "good" solutions in Python? >> > >> > >> > >> > _______________________________________________ >> > CentralOH mailing list >> > CentralOH at python.org >> > https://mail.python.org/mailman/listinfo/centraloh >> _______________________________________________ >> CentralOH mailing list >> CentralOH at python.org >> https://mail.python.org/mailman/listinfo/centraloh >> > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: RoomSchedule.py Type: text/x-python Size: 1336 bytes Desc: not available URL: From jep200404 at columbus.rr.com Fri May 29 23:21:28 2015 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Fri, 29 May 2015 17:21:28 -0400 Subject: [CentralOH] Herman Singh Python Hack Night In-Reply-To: References: Message-ID: <20150529172128.6e33af7b.jep200404@columbus.rr.com> On Tue, 26 May 2015 12:05:16 -0700, timothy spencer wrote: > I know a Python programmer, Hermann Singh, and he is having a hack night at hi How did it go? From mark at aufdencamp.com Sun May 31 16:17:54 2015 From: mark at aufdencamp.com (Mark Aufdencamp) Date: Sun, 31 May 2015 07:17:54 -0700 Subject: [CentralOH] Packt Free Learning - OpenCV Computer Vission with Python Message-ID: <20150531071754.181451e9c2a7ebbcd6ae28cea81146c8.4c5395901a.wbe@email17.secureserver.net> https://www.packtpub.com/packt/offers/free-learning