From eric at intellovations.com Mon May 7 22:32:26 2018 From: eric at intellovations.com (Eric Floehr) Date: Mon, 7 May 2018 22:32:26 -0400 Subject: [CentralOH] Smart City Hackathon May 18-20 (let's get some Python representation there!) Message-ID: The Smart City Hackathon powered by Smart Columbus is May 18-20 at Fintech71! Join us for a weekend focused on building intelligent solutions by leveraging the *Smart Columbus Operating System (SCOS).* We?ll provide a platform for open data as well as some vetted smart city use cases for you to leverage, to create innovative solutions for our community. Select a track or bring your own use cases to focus on ? the choice is yours. *What?s in it for you? * You?ll get to work alongside some of the top entrepreneurs, designers, coders, and innovators in Central Ohio. You?ll also get the chance to meet and learn from some amazing speakers and mentors. (And, of course, you?ll get plenty of food and swag throughout the weekend.) Attendees will receive: - Sweet workspace at Fintech71 for the weekend - Invaluable access to a community of world class entrepreneurs and mentors - 3 dinners, 2 lunches, 2 breakfasts - A sweet t-shirt - All the coffee, soda, energy drinks, and water you could ever need - An amazing experience and chance to get a taste of the startup world - And more coming soon! Use promo code *TECHVIP *for a *complimentary* ticket (normally $30), courtesy of COhPy*. *Learn more about our featured use cases and get your ticket: www.hackSCOS.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From damiencalloway at gmail.com Tue May 8 18:43:36 2018 From: damiencalloway at gmail.com (Damien Calloway) Date: Tue, 08 May 2018 22:43:36 +0000 Subject: [CentralOH] [COhPy] April 2018 Monthly Meeting Message-ID: PyOh April 2018 35+ people came - lots of newcomers Don?t forget PyOhio! T-shirts are $35, but otherwise the conference is free for the 11th year in a row. July 28-29 2018 @ the Ohio Union on OSU campus Deadline for talks is May 15th May 21st is the date for the next meeting- so that way, we avoid conflict with Memorial Day Numworks just launched - open source graphing calculator with MicroPython. https://www.numworks.com Guy Royse presented Machine Learning for Fun - and gave away a bunch of Nexosis t-shirts IANADS - I am not a data scientist Big Foot is quite popular lately ? the Bigfoot Field Researchers Organization ? Tim Renner data.world - esoteric source of user submitted data. Has a database of Big Foot sightings, and UFO sightings, etc. The presence of data itself is information Imputation and Aggregation - using the Big Foot data, then preparing it for further analysis Only meaningful with time-series data. Forecasting, predicting the future from historical data on Big Foot Nexosis demo - free version caps at 10MB of data Nexosis has built-in templates for this ? Elk ? Elm -> C# -> Python for Machine Learning Absence of evidence is not evidence of absence There is a very strong correlation of Big Foot sightings and the time the X-Files aired on television. A spike in the 70s matches up to the Six Million Dollar Man TV show. Impact Analysis, comparing what should have happened, versus what actually happened. ? postman - Perl that doesn?t suck Classification, what is this ? Bigfoot Classinator - uses natural language processing to classify a free form text description of a Big Foot sighting >From the Bigfoot Field Research Organization : A - I saw Big Foot B - I saw evidence of Big Foot C - Someone else told me they saw Big Foot Code snippet was Python on AWS Lambda using the Nexios restful API (three cheers for JSON !) Code is at Guyroyse/Bigfoot-classinator @ github Go to Nexosis.com for a free api key Follow Guy on Twitter @guyroyse -------------- next part -------------- An HTML attachment was scrubbed... URL: From kris at rkrishardy.com Wed May 9 16:13:45 2018 From: kris at rkrishardy.com (Kris Hardy) Date: Wed, 9 May 2018 14:13:45 -0600 Subject: [CentralOH] Greetings from Albuquerque, NM & Going to PyCon? - If so, say hi to Vidya Iyer In-Reply-To: References: Message-ID: Hi everyone!? I hope all is going well for you!? Most of you haven't heard from me for a while since I moved to Albuquerque, NM in 2011 and started the ABQpy meetup down here, but there are times that I do miss Columbus. Anyway... Vidya Iyer, a good friend of mine from ABQpy will be at PyCon.? If anyone runs into her, make sure that you say hi.? She's doing some really awesome work with network traffic analysis and failure prediction that was funded by NSF, and this will be her first PyCon. Thanks and best wishes!? If anyone is ever in Albuquerque, drop me a line! -Kris kris at rkrishardy.com 505-720-4939 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: From amonroe at columbus.rr.com Thu May 10 21:22:12 2018 From: amonroe at columbus.rr.com (R. Alan Monroe) Date: Thu, 10 May 2018 21:22:12 -0400 Subject: [CentralOH] Bottle app in subdirectory of server? Message-ID: <4210580551.20180510212212@columbus.rr.com> If there are any local Bottle gurus, I have an unanswered question with bounty on SO: https://stackoverflow.com/questions/50224590/python-bottle-app-in-app1-am-i-forced-to-prepend-app1-to-all-routes I only have a vague idea of how the webserver is interacting with the Python script and how/if Bottle is supposed to munge URLs to make this work. Possibly it can't and my use case is not a fit for Bottle. Alan From jocassid at gmail.com Tue May 15 23:27:08 2018 From: jocassid at gmail.com (John Cassidy) Date: Tue, 15 May 2018 23:27:08 -0400 Subject: [CentralOH] Presentation at June meeting? Message-ID: I'm not sure who is currently organizing talks for our monthly meetings, but I'm interested in giving a talk on SymPy at the June meeting. I just put in a proposal for a SymPy talk for PyOhio and would like to give this talk a dry-run. -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Wed May 16 10:01:39 2018 From: eric at intellovations.com (Eric Floehr) Date: Wed, 16 May 2018 10:01:39 -0400 Subject: [CentralOH] May Monthly meeting this Monday -- From the Pyramids to Python: Architecture to cope with large projects Message-ID: Come and learn, share, grow, meet new people, and visit old friends at our monthly meeting! This month, Neil Ludban will be presenting "From the Pyramids to Python: Architecture to cope with large projects". We learned to break too many lines of code into functions, and then reorganize as methods on classes, but how can we remember it all as the project grows to hundreds or thousands of classes? From ancient pyramids to modern skyscrapers, see some patterns (and anti-patterns) that can be applied to our Python projects to make them orders of magnitude easier (or harder) to build and maintain. Afterwards we'll be heading to Brazenhead on 5th. Please RSVP here: https://www.meetup.com/Central-Ohio-Python-Users-Group/events/246491282/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From nludban at columbus.rr.com Tue May 22 10:56:55 2018 From: nludban at columbus.rr.com (Neil Ludban) Date: Tue, 22 May 2018 10:56:55 -0400 Subject: [CentralOH] May Monthly meeting this Monday -- From the Pyramids to Python: Architecture to cope with large projects In-Reply-To: References: Message-ID: <20180522105655.13c9b6ceff2f78b20e6746fe@columbus.rr.com> Here are all the software links from the presentation, plus the text of a few key slides, and the code for the lxml utility functions. To clarify my response to one of the questions asked, the multi-tier architecture and layer responsibities given in the slides is a good starting point for any application since it separates interacting with the outside world, making decisions, and handling data. The "force fit" remark was intended as a recommendation to initially break the functionality into layers, later reorganizing each layer with more elegant pyramids/facades patterns. With practice in any domain, the working patterns become more familiar and it's easier to plan the big parts of the architecture on paper before starting to write code. https://sedimental.org/ 10_myths_of_enterprise_python.html - paypal, ca 2014-12 esp.html - "Enterprise Software with Python" O'Reilly lectures https://www.packtpub.com/ application-development/software-architecture-python https://www.youtube.com/watch?v=DJtef410XaM - PyOhio 2014 - Brandon Rhodes - "The Clean Architecture in Python" https://en.wikipedia.org/ wiki/Robert_C._Martin https://8thlight.com/blog/uncle-bob/ 2012/08/13/the-clean-architecture.html 2011/09/30/Screaming-Architecture.html https://en.wikipedia.org/ wiki/The_Mythical_Man-Month http://www.cs.yale.edu/ homes/perlis-alan/quotes.html "Epigrams in Programming" ACM SIGPLAN, September 1982 https://en.wikipedia.org/ wiki/Cohesion_(computer_science) wiki/Coupling_(computer_programming) wiki/Separation_of_mechanism_and_policy wiki/Separation_of_concerns http://www.gnu.org/ fun/jokes/pasta.code.html https://en.wikipedia.org/ wiki/Spaghetti_code wiki/Spaghetti_code#Lasagna_code wiki/Spaghetti_code#Ravioli_code http://www.laputan.org/mud/ Big Ball of Mud https://blog.codinghorror.com/ the-big-ball-of-mud-and-other-architectural-disasters/ https://msdn.microsoft.com/ en-us/library/dd409437.aspx https://martinfowler.com/ articles/designDead.html https://en.wikipedia.org/ wiki/4+1_architectural_view_model wiki/Category:Unified_Modeling_Language_diagrams Logical -- Classes, inheritance, composition Development -- Object hierarchies, connected interfaces Physical -- Software, hardware, networks Process -- Internal activities Scenarios -- [Use Cases] - PlantUML (sequence diagrams) (http://plantuml.com/) - tgif (http://bourbon.usc.edu/tgif/) https://en.wikipedia.org/ wiki/List_of_Unified_Modeling_Language_tools https://www.google.com/search?q=uml+cheat+sheet https://en.wikipedia.org/ wiki/Software_design_pattern - "Gang of Four" book - "Python doesn't need design patterns" - Language features - Please note in comments https://en.wikipedia.org/ wiki/Adapter_pattern - Create an object containing one object - Change method names/parameters - Adapt old class to new interface - Adapt new class to old interface - Useful for refactoring https://en.wikipedia.org/ wiki/Facade_pattern - Create an object containing many objects - Simplified interface - Domain specific API - Divide and conquer https://en.wikipedia.org/ wiki/Multitier_architecture https://en.wikipedia.org/ wiki/Model-view-viewmodel wiki/Model-view-presenter Dependency Rules - Pyramid / DAG / Tree - Parent to children - Facade / encapsulate - Child to parent - OK within layer - Interface for higher layer - Minimal peer knowledge - Coordinate via parent Layer Responsibilities Presentation - Provide a Proxy - Consumed by other components - Consumed via loopback Application - Process - Create Managers, Components - Service - Facade for Component - AuthZ and Accounting - Requests handed to Component - Component - Create rest of the child objects - Main thread processes requests Control - Facade for implementation - Coordinate lower pieces - Synchronization / Locking Data - Implementation details - Unit Tested UML Package = Python namespace - control/__init__.py - Relative-import public classes: from .topframe import TopFrame - control.py - Syntactically valid hacks... class data: class TopFrame: pass attrs: Classes Without Boilerplate http://www.attrs.org/ lxml - XML and HTML with Python http://lxml.de/ ## ## xmlutil.py ## from contextlib import contextmanager from lxml import etree def str_from_etree(node, pretty_print=True): return etree.tostring(node, pretty_print=pretty_print, method='xml', # full document encoding='unicode') # str, not bytes. def etree_from_str(s): e = etree.XML(s) return e def etree_from_file(fobj): e = etree.parse(fobj) return e def etree_from_filename(fname): with open(fname, 'b') as f: e = etree_from_file(f) return e def subelement(p, tag, **attrs): c = etree.SubElement(p, tag, **attrs) return c @contextmanager def subcontext(p, tag, **attrs): c = etree.SubElement(p, tag, **attrs) yield c https://en.wikipedia.org/wiki/Software_crisis https://en.wikipedia.org/wiki/Anti-pattern https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ http://www.catb.org/esr/writings/taoup/html/ From mihandler0 at gmail.com Wed May 30 22:37:49 2018 From: mihandler0 at gmail.com (Michael Handler) Date: Wed, 30 May 2018 22:37:49 -0400 Subject: [CentralOH] python editing commands for vim Message-ID: https://github.com/jeetsukumaran/vim-pythonsense -------------- next part -------------- An HTML attachment was scrubbed... URL: