From jep200404 at columbus.rr.com Wed Aug 3 14:05:24 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Wed, 3 Aug 2016 14:05:24 -0400 Subject: [CentralOH] 2016-08-01 Pyohio Monday Sprints: Coaster Scribbles: Intro to Sprinting markdown anaconda beehave batavia etymology python in browser ride sharing plaintext grows superpowers nandtotetris security mba try.jupyter.org avoid git pull python path horizon oracle v pg Message-ID: <20160803140524.033ce834.jep200404@columbus.rr.com> There was actual sprinting going on. Intro to Sprinting This project is for how to make sprints more productive especially for beginners. This has been needed for a long time. https://github.com/chalmerlowe/intro_to_sprinting Chalmer Lowe todo markdown tutorial? https://github.com/james-prior/pyohio-2016/blob/master/Part 4 - Markdown Cells.ipynb http://nbviewer.jupyter.org/github/james-prior/pyohio-2016/blob/master/Part 4 - Markdown Cells.ipynb How to render markdown: Paste into a markdown cell in Jupyter Notebook, then (re)execute cell. https://try.jupyter.org/ lets one do so in firefox or chrome without installing any jupyter or markdown stuff on one's PC. When I am satisfied, copy cell and paste into foo.md file. (this is what I usually do) markdown README.md >README.md.html (then view file in browser) Ubuntu 14.04.4 LTS sudo apt-get install markdown markdown README.md >README.md.html Ubuntu 14.04.4 LTS sudo apt-get install python-markdown markdown_py README.md >README.md.html push to github, then view with browser (too cumbersome) howto for sprint leader have files on USB flash drive as backup for bad network FAT32 partition for portability software for all platforms: anaconda! miniconda? git? ceelo at sprints:~/mnt/flash-drive/anaconda$ ll total 4069528 -rw-rw-r-- 1 ceelo ceelo 411562823 Mar 29 12:14 Anaconda2-4.0.0-Linux-x86_64.sh -rw-rw-r-- 1 ceelo ceelo 348392297 Mar 29 12:14 Anaconda2-4.0.0-Linux-x86.sh -rw-rw-r-- 1 ceelo ceelo 355703551 Mar 29 12:14 Anaconda2-4.0.0-MacOSX-x86_64.pkg -rw-rw-r-- 1 ceelo ceelo 304288480 Mar 29 12:14 Anaconda2-4.0.0-MacOSX-x86_64.sh -rw-rw-r-- 1 ceelo ceelo 350807856 Mar 29 12:14 Anaconda2-4.0.0-Windows-x86_64.exe -rw-rw-r-- 1 ceelo ceelo 294659856 Mar 29 12:15 Anaconda2-4.0.0-Windows-x86.exe -rw-rw-r-- 1 ceelo ceelo 417798602 Mar 29 12:15 Anaconda3-4.0.0-Linux-x86_64.sh -rw-rw-r-- 1 ceelo ceelo 353266156 Mar 29 12:15 Anaconda3-4.0.0-Linux-x86.sh -rw-rw-r-- 1 ceelo ceelo 358139390 Mar 29 12:16 Anaconda3-4.0.0-MacOSX-x86_64.pkg -rw-rw-r-- 1 ceelo ceelo 306950558 Mar 29 12:16 Anaconda3-4.0.0-MacOSX-x86_64.sh -rw-rw-r-- 1 ceelo ceelo 362171448 Mar 29 12:16 Anaconda3-4.0.0-Windows-x86_64.exe -rw-rw-r-- 1 ceelo ceelo 296840248 Mar 29 12:16 Anaconda3-4.0.0-Windows-x86.exe ceelo at sprints:~/mnt/flash-drive/anaconda$ the repo itself??? Beehave a whole bunch of things, including Batavia, which runs Python byte code in javascript so that one can run Python in browsers. batavia is much smaller than trying to put interpreter on browser great etymology https://github.com/pybee/batavia Russell Keith-Magee See the video of his presentation for various ways of doing Python on javascript. Snakes in a browser by Russell Keith-Magee Ride Sharing https://github.com/catherinedevlin/rideshare-matchmaker Catherine Devlin great title https://github.com/catherinedevlin/plaintext-grows-superpowers https://github.com/catherinedevlin/python-over-the-bumps People who are really serious about software should make their own hardware. https://en.wikiquote.org/wiki/Alan_Kay#1980s nand to tetris http://nand2tetris.org/ Building a Modern Computer from First Principles The east room got very warm in afternoon TVs had HDMI and various analog inputs isc2-central-ohio-chapter-security-mba-tickets https://github.com/chalmerlowe/data_generator.git https://github.com/james-prior/pyohio-2016 http://jupyter-notebook.readthedocs.io/en/latest/examples/Notebook/Working With Markdown Cells.html try.jupyter.org provoked security blockage by firefox Prepending https:// made firefox happy. BeeWare http://pybee.org/ https://github.com/pybee contributing Russell Keith-Magee batavia!!!!!! https://github.com/pybee/batavia need to know: python bytecode javascript test suite "unexpected success" https://pypi.python.org/pypi/voc Tools to convert Python bytecode into Java bytecode. bower.io github.com/bower/bower afraid to do git pull afraid of unresolved conflicts instead: git fetch remotereponame look at diffs between their branch and my branch incrementally resolve those differences with multiple little commits on my branch (and maybe some on their branch also). When there are no diffs between my branch and their branch, I switch to their branch, merge my branch, push merged branch to github then create pull request for it python path for imports brought big new laptop with gorgeous 4k display, probably IPS realtime open-source backend for Javascript apps by RethinkDB folks github.com/rethinkdb/horizon @horizonjs boozallen.com/careers when asked opined that there was nothing that Oracle does that Postgresql can not by the way Postgresql's GIS stuff blows away Oracle's in geodjango: https://pythonhosted.org/django_simple_feedback/ref/contrib/gis/db-api.html#compatibility-tables Next PyOhio: 2017-07-29 and 2017-07-30 s/alot/allot/ pack dongles for Carl HDMI to VGA VGA to HDMI encourage all sprint leaders to have lightning talks speaker prep: encourage presenters to practice connecting to Carl's video system long before the presenter's time slot. (e.g. during lunch time?) Bringing extra adapters is good. tell speakers what kind of video they are likely to connect to Let's hope Carl recovers well. From eric at intellovations.com Sat Aug 6 18:34:46 2016 From: eric at intellovations.com (Eric Floehr) Date: Sat, 6 Aug 2016 18:34:46 -0400 Subject: [CentralOH] Good article on generators Message-ID: Since generators is still the topic of our current challenge[1], I thought I would share this really good article by Aaron Maxwell, author of Advanced Python: A Not-For-Beginners Guide[2], on generators, and some areas in which they are really neat to use: https://www.oreilly.com/ideas/2-great-benefits-of-python-generators-and-how-they-changed-me-forever Aaron also has a a weekly newletter, called the 'Powerful Python Newsletter' which you can sign up for on his site. [1] https://github.com/cohpy/challenge-201605-generators [2] https://migrateup.com/store/advanced-python-book/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From james at atlantixeng.com Sun Aug 7 16:51:55 2016 From: james at atlantixeng.com (James Bonanno) Date: Sun, 7 Aug 2016 16:51:55 -0400 Subject: [CentralOH] QML / Qt versus (Angularjs, Electron, ....) Message-ID: Over the years development of GUI's with Pyside has been my approach, but over the last several months have been developing with QML. This is because I've found QML to be very powerful. Additionally, PyQt5 supports QML nicely. I've investigated angularjs, emberjs, backbone, and on and on. I find angularjs to be rather clever, but to me the whole thing breaks on a fundamental paradigm of how to cleanly design the UI from a programmer's perspective. In contrast, having the qtdesigner in the past enabled a programmer to design very nice look GUI's. Today, QtQuick allows that now with QML, and even writing the complete description from scratch in QML is pretty straightforward. The one thing I like about QML is the ability to add javascript to presentation layer controls; in the past, I've written Python classes with decorators to handle all the presentation layer. Effectively, I can allocate this layer to javascript within the QML. Additionally, these days, you can write your backend for a QML app in either Python or Golang if you so choose, and that is a nice touch, in addition to C++. James From james at atlantixeng.com Sun Aug 7 17:01:27 2016 From: james at atlantixeng.com (James Bonanno) Date: Sun, 7 Aug 2016 17:01:27 -0400 Subject: [CentralOH] Liri Browswer Project in QML Message-ID: <1d22ae49-2dc0-aa1a-a371-c141dcbd57b7@atlantixeng.com> The liri brower project, written in QML, with mainly C++ backend. http://liriproject.me/browser/#discover A nice project would be to look at doing the backend in Python. From godber at gmail.com Mon Aug 8 14:07:10 2016 From: godber at gmail.com (Austin Godber) Date: Mon, 8 Aug 2016 11:07:10 -0700 Subject: [CentralOH] QML / Qt versus (Angularjs, Electron, ....) In-Reply-To: References: Message-ID: Hi James, This sounds interesting, is any of your code up on github? It might be interesting to look through. Have you come across any materials that were particularly useful in learning QML/Python/Qt5 development? It's been about a year since I've looked at any GUI development. I ended up doing a little wxwindows and PySide (for licensing reasons). Austin On Sun, Aug 7, 2016 at 1:51 PM, James Bonanno wrote: > Over the years development of GUI's with Pyside has been my approach, but > over the last several months have been developing with QML. This is because > I've found QML to be very powerful. Additionally, PyQt5 supports QML nicely. > > I've investigated angularjs, emberjs, backbone, and on and on. I find > angularjs to be rather clever, but to me the whole thing breaks on a > fundamental paradigm of how to cleanly design the UI from a programmer's > perspective. > > In contrast, having the qtdesigner in the past enabled a programmer to > design very nice look GUI's. Today, QtQuick allows that now with QML, and > even writing the complete description from scratch in QML is pretty > straightforward. > > The one thing I like about QML is the ability to add javascript to > presentation layer controls; in the past, I've written Python classes with > decorators to handle all the presentation layer. Effectively, I can > allocate this layer to javascript within the QML. Additionally, these days, > you can write your backend for a QML app in either Python or Golang if you > so choose, and that is a nice touch, in addition to C++. > > James > > _______________________________________________ > 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 Tue Aug 9 10:33:27 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Tue, 9 Aug 2016 10:33:27 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-05_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gZ2l0IHVucHVzaCBnaXRodWIgcHl0aG9uIDIgLT4g?= =?utf-8?q?python_3?= Message-ID: <20160809103327.65f4dfc7.jep200404@columbus.rr.com> wanted to know how to remove something from github I whooshed through it much faster than he could possibly remember. He can study bash history of commands. Several folks were not comfortable with git and github, so that was played with. Oops, how to delete default branch "diediedie" from github (that is not an ancestor local diediedie branch)? locally: git checkout -b foo_temp ;# create some other temporary branch locally: git push origin foo_temp ;# put it in github on github: change default branch to that other branch foo_temp on repo's main page, click on Settings (to right of Graphs) in options column, click on Branches Under Default branch, select new branch name. click on Update click on "I understand, update the default branch." locally: git push origin :diediedie ;# note the colon before branch name now you can push local branch diediedie that was not a descendent of the diediedie branch on github locally: git push origin diediedie github: change default branch back to diediedie locally: git push origin :foo_temp ;# delete foo_temp branch from github locally: git checkout diediedie locally: git branch -d foo_temp ;# might have to use git branch -D ... By the way, folks using your repo might not be happy when the branch they have been working on is no longer there, and replaced by a branch (or tag) That's not a descendent of what they have Peruse git* files in https://github.com/james-prior/notes. Migrating from Python 2 to Python 3 http://www.linuxjournal.com/content/august-2016-issue-linux-journal 3 graphical tools for Git https://opensource.com/life/16/8/graphical-tools-git FCC forces TP-Link to support open source firmware on routers http://arstechnica.com/information-technology/2016/08/fcc-forces-tp-link-to-support-open-source-firmware-on-routers/ What are limits of what government can push for in settlements? How about contributing to some charity? http://johnrausch.com/PuzzleWorld/ decentralized promises http://www.linuxjournal.com/content/new-project-linux-25 Dosa Corner South Indian Vegetarian 1077 Old Henderson Rd http://www.dosacornerrestaurant.com/ Is that close enough to Chemical Abstacts? BORUiT RJ-3000 headlamp: cheap, bright! Linksys WRT54G ver 2 classic model that has enough memory to run full dd-wrt Platform & Frequency Broadcom BCM4712 at 200 MHz 16 MB RAM 4 MB flash antenna connection: RP-TNC WLAN NIC: SOC WLAN standards (802.11): b/g mini PCI: no UART Yes JTAG port Yes Ethernet ports: 4 LAN 1 WAN Power input: 12V 1A Install Guide http://dd-wrt.com/wiki/index.php/Linksys_WRT54G_v2.0 http://dd-wrt.com/wiki/index.php/Supported_Devices#Linksys_.28Wireless_a.2Fb.2Fg.29 From mark at aufdencamp.com Tue Aug 9 12:57:34 2016 From: mark at aufdencamp.com (Mark Aufdencamp) Date: Tue, 09 Aug 2016 09:57:34 -0700 Subject: [CentralOH] =?utf-8?b?MjAxNi0wOC0wNV/pgZPloLRfU2NyaWJibGVzXyA=?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gZ2l0IHVucHVzaCBnaXRodWIgcHl0aG9uIDIgLT4g?= =?utf-8?q?python=5F3?= Message-ID: <20160809095734.181451e9c2a7ebbcd6ae28cea81146c8.b3706db505.wbe@email17.godaddy.com> Jim, Do you want to just remove the remote branch? or actually delete remote commits? I recently delved into this as I mistakenly used the wrong URL as the remote origin when copying a payment processor repo to refactor for another payment processor. One can delete a remote branch by prefixing its name with a colon as you've described: git push origin :diediedie newer syntax allows: git push origin --delete diediedie In my case, I wanted to revise history (no external branches existed) by deleting the problem commits. git rebase -i HEAD~20 Opens an editor with list of the last 20 commits to tamper with. It takes an argument of a commit id or HEAD~integer of number of commits to display. Combined with a forced push will rewrite the remote history git push origin -f This allowed me to delete about 20 bad commits that I had mistakenly pushed to the wrong remote repo! Messed up rebase's can be aborted: git rebase --abort Be careful when rewriting history, it's probably something you don't really want to do if someone has forked the bad commits. It took me an hour or two to cleanup/recover the remote repo including googling and git reading time. In the end I successfully recovered my repo back to where I wanted it. GIT Rocks! Mark > -------- Original Message -------- > Subject: [CentralOH] 2016-08-05_??_Scribbles_ ??/??? git > unpush github python 2 -> python_3 > From: jep200404 at columbus.rr.com > Date: Tue, August 09, 2016 10:33 am > To: centraloh at python.org > > > wanted to know how to remove something from github > I whooshed through it much faster than he could possibly remember. > He can study bash history of commands. > > Several folks were not comfortable with git and github, > so that was played with. > > Oops, how to delete default branch "diediedie" from github > (that is not an ancestor local diediedie branch)? > > locally: git checkout -b foo_temp ;# create some other temporary branch > locally: git push origin foo_temp ;# put it in github > on github: change default branch to that other branch foo_temp > on repo's main page, click on Settings (to right of Graphs) > in options column, click on Branches > Under Default branch, > select new branch name. > click on Update > click on "I understand, update the default branch." > locally: git push origin :diediedie ;# note the colon before branch name > > now you can push local branch diediedie > that was not a descendent of the diediedie branch on github > locally: git push origin diediedie > github: change default branch back to diediedie > locally: git push origin :foo_temp ;# delete foo_temp branch from github > locally: git checkout diediedie > locally: git branch -d foo_temp ;# might have to use git branch -D ... > > By the way, folks using your repo might not be happy > when the branch they have been working on is no longer there, > and replaced by a branch (or tag) That's not a descendent > of what they have > > Peruse git* files in https://github.com/james-prior/notes. > > Migrating from Python 2 to Python 3 > http://www.linuxjournal.com/content/august-2016-issue-linux-journal > > 3 graphical tools for Git > https://opensource.com/life/16/8/graphical-tools-git > > FCC forces TP-Link to support open source firmware on routers > http://arstechnica.com/information-technology/2016/08/fcc-forces-tp-link-to-support-open-source-firmware-on-routers/ > > What are limits of what government can push for in settlements? > How about contributing to some charity? > > http://johnrausch.com/PuzzleWorld/ > > decentralized promises > http://www.linuxjournal.com/content/new-project-linux-25 > > Dosa Corner South Indian Vegetarian > 1077 Old Henderson Rd > http://www.dosacornerrestaurant.com/ > > Is that close enough to Chemical Abstacts? > > BORUiT RJ-3000 headlamp: cheap, bright! > > Linksys WRT54G ver 2 > classic model that has enough memory to run full dd-wrt > > Platform & Frequency Broadcom BCM4712 at 200 MHz > 16 MB RAM > 4 MB flash > antenna connection: RP-TNC > WLAN NIC: SOC > WLAN standards (802.11): b/g > mini PCI: no > UART Yes > JTAG port Yes > Ethernet ports: 4 LAN 1 WAN > Power input: 12V 1A > Install Guide http://dd-wrt.com/wiki/index.php/Linksys_WRT54G_v2.0 > http://dd-wrt.com/wiki/index.php/Supported_Devices#Linksys_.28Wireless_a.2Fb.2Fg.29 > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh From herrold at owlriver.com Wed Aug 10 10:32:27 2016 From: herrold at owlriver.com (R P Herrold) Date: Wed, 10 Aug 2016 10:32:27 -0400 (EDT) Subject: [CentralOH] 2016-08-11 11:30 Thursday FOSS Folks Lunch at Alladin's Grandview Message-ID: Thursday FOSS Folks Lunch at Alladin's Grandview August 11, 2016, 11:30 p.m. Alladin's Eatery (Grandview) [1] 1425 Grandview Ave Columbus, OH 43212 Popular COLUG, Ohio Linuxfest, and Red Hat Summit presenter Jim Wildman is in town for meetings with a customer, and will break away tomorrow to join us We'll be meeting for good food and good company. Join us to talk 'geek speak', FOSS, programming, or anything else -- Russ herrold 1. http://www.aladdinseatery.com/ From herrold at owlriver.com Wed Aug 10 11:01:36 2016 From: herrold at owlriver.com (R P Herrold) Date: Wed, 10 Aug 2016 11:01:36 -0400 (EDT) Subject: [CentralOH] 2016-08-11 11:30 Thursday FOSS Folks Lunch at Alladin's Grandview In-Reply-To: References: Message-ID: On Wed, 10 Aug 2016, R P Herrold wrote: > > Thursday FOSS Folks Lunch at Alladin's Grandview > > August 11, 2016, 11:30 p.m. erk ... AM of course From eric at intellovations.com Wed Aug 10 11:31:40 2016 From: eric at intellovations.com (Eric Floehr) Date: Wed, 10 Aug 2016 11:31:40 -0400 Subject: [CentralOH] 2016-08-11 11:30 Thursday FOSS Folks Lunch at Alladin's Grandview In-Reply-To: References: Message-ID: RSVP Here: http://www.meetup.com/techlifecolumbus/events/233258717/ On Wed, Aug 10, 2016 at 11:01 AM, R P Herrold wrote: > On Wed, 10 Aug 2016, R P Herrold wrote: > > > > > Thursday FOSS Folks Lunch at Alladin's Grandview > > > > August 11, 2016, 11:30 p.m. > > erk ... AM of course > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james at atlantixeng.com Wed Aug 10 23:09:45 2016 From: james at atlantixeng.com (James Bonanno) Date: Wed, 10 Aug 2016 23:09:45 -0400 Subject: [CentralOH] More on PyQt / QML In-Reply-To: References: Message-ID: <9cbdf78d-61db-19bd-8b89-c5ee8a5a5170@atlantixeng.com> Following Up from Austin's comments, and more information regarding PyQt5 and QML. What I have found is that the documentation is pretty scattered at this point. I have looked at PyQt5 / QML examples from all over GitHub and various places on the web. What I am finding is that the release model for Qt right now is pretty aggressive; and since I updated to the latest version of Qt 5.7 just the other day, my Python code for running the QML applications became broken. Additionally, I used the current Golang module that supports QML and it was also broken. However, if I wrap the QML with C++, it runs very nicely. The wrapper functionality is somewhat minimized overall, due to the capabilities of both QML and javascript. Finally, if I run qmlscene, the QML renders natively on the screen in a very nice fashion without any wrappers. (I really like this aspect of Qt development with QML, i.e. it is conceivable to have a complete app in QML, javascript, and Qt, even writing to sqlite databases within the QML framework. ) While the examples on GitHub are tempting, there is not enough attention given to dependency tracking and overall compatibility imho. Another very frustrating issue with PyQt5 is that to get the latest version, you must build from source both the SIP module and PyQt5, and you must be careful to use Python3 to run the configure scripts before executing make and make install. Riverbank is somewhat aloof about PyQt, despite Mark Summerfield's book and all the hoopla about the various ports of Qt (Python, Ruby, Ring, Haskell, Rust, Ada, etc.) This is very annoying. At this moment in time, I am looking at sticking with PySide and the ui designer for Qt, or jumping ship with no life vest and going with QML, Javascript and wrappers in C++ as needed. The benefit here would be that as PyQt5 support for QML becomes more stabilized, some of these apps could be migrated to Python. I have a new customer who wants high reliable GUI's for an industrial application, so trying to stay ahead of the curve and be safe and the same time is the essential question. Hope this helps. James On 08/09/2016 12:00 PM, centraloh-request at python.org wrote: > Message: 1 > Date: Mon, 8 Aug 2016 11:07:10 -0700 > From: Austin Godber > To: "Mailing list for Central Ohio Python User Group (COhPy)" > > Subject: Re: [CentralOH] QML / Qt versus (Angularjs, Electron, ....) > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Hi James, > > This sounds interesting, is any of your code up on github? It might be > interesting to look through. Have you come across any materials that were > particularly useful in learning QML/Python/Qt5 development? It's been > about a year since I've looked at any GUI development. I ended up doing a > little wxwindows and PySide (for licensing reasons). > > Austin On Sun, Aug 7, 2016 at 1:51 PM, James Bonanno wrote: > Over the years development of GUI's with Pyside has been my approach, but > over the last several months have been developing with QML. This is because > I've found QML to be very powerful. Additionally, PyQt5 supports QML nicely. > > I've investigated angularjs, emberjs, backbone, and on and on. I find > angularjs to be rather clever, but to me the whole thing breaks on a > fundamental paradigm of how to cleanly design the UI from a programmer's > perspective. > > In contrast, having the qtdesigner in the past enabled a programmer to > design very nice look GUI's. Today, QtQuick allows that now with QML, and > even writing the complete description from scratch in QML is pretty > straightforward. > > The one thing I like about QML is the ability to add javascript to > presentation layer controls; in the past, I've written Python classes with > decorators to handle all the presentation layer. Effectively, I can > allocate this layer to javascript within the QML. Additionally, these days, > you can write your backend for a QML app in either Python or Golang if you > so choose, and that is a nice touch, in addition to C++. > > James -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Thu Aug 11 20:10:22 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Thu, 11 Aug 2016 20:10:22 -0400 Subject: [CentralOH] 2016-08-11 Aladdin's Plush Paper Napkin Scribbles: Virginia Compromise RAM, restrictor plates, lists, and generators set and list membership sysadmin skills printf lost backdoor key Message-ID: <20160811201022.687a0feb.jep200404@columbus.rr.com> Lunch is highly non-linear. The one person who signed up, did not appear. Five others who did not sign up, had lunch together. wp:Virginia Plan wp:Connecticut Compromise Modern computers are like NASCAR race cars. Restrictor plates limit what the engine can do. So-called RAM limits what CPUs can do. wp:restrictor plate racing RAM ain't random access memory anymore It used to be that all accesses to RAM took the same time regardless of which location was being accessed and that RAM was about as fast as CPUs. That has not been the case for a long time. Now, it is more sequential access memory than random access memory. When accessed sequentially, it is fast. When accessed randomly, it is slow. wp:RAM#Memory_wall Caches become more important. Building big lists in Python, blows ones cache. Nested generators in Python, play nicer with cache. Raymond Hettinger talked about this in some presentation. pyvideo.org wp:Hybrid Memory Cube Motorola 6800s used a square wave clock (E?) for external accesses. One could connect a pair of 6800s to shared memory, without slowing anything down, by having the CPUs staggered in time, so that their (E?) clocks were interleaved. http://visual6502.org/wiki/index.php?title=Motorola_6800 wp:Datapoint_2200#The_seed_of_the_x86_architecture Someone thought that writing zeroes to the memory allocated by some *alloc() call (in libc?) was unnecessary. Which call was it? Who was the proponent? What percentage of sysadmins: are not touch typists? access previous commands in history only by using up arrow? speed of searching for something in a set versus list http://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160523-cohpy-speed-of-searching-sets-and-lists.ipynb Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open http://arstechnica.com/security/2016/08/microsoft-secure-boot-firmware-snafu-leaks-golden-key/ How FOSS Influences All Aspects of Our Culture http://fossforce.com/2016/08/foss-influences-our-culture/ All about printf http://www.linuxjournal.com/content/all-about-printf Python's print formatting was based on this. From jep200404 at columbus.rr.com Fri Aug 12 10:13:54 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Fri, 12 Aug 2016 10:13:54 -0400 Subject: [CentralOH] =?utf-8?q?2016-07-29_=E9=81=93=E5=A0=B4_PyOhio_Sprint?= =?utf-8?b?cyBTY3JpYmJsZXMg76SY5pu4L+aDoeaWhz8gUHl0aG9uIFBvcHVsYXJpdHk=?= Message-ID: <20160812101354.6fc9fbcd.jep200404@columbus.rr.com> Thanks to Pillar and Paul for their hospitality in hosting the Friday night sprints at Pillar's "The Forge". Cookielicious Bulb in projector in Cartoon 1 died today. The whole AV system in that room is scheduled to be replaced Monday, so the bulb will not be replaced. Firefox sets kill-Flash schedule http://www.computerworld.com/article/3098606/web-browsers/firefox-sets-kill-flash-schedule.html Why you should avoid vanity metrics and measure what matters https://opensource.com/business/16/7/measuring-what-matters Photographer sues Getty Images for selling photos she donated to public http://arstechnica.com/tech-policy/2016/07/photographer-sues-getty-images-for-selling-photos-she-donated-to-public/ Python #3 http://www.theregister.co.uk/2016/07/28/plenty_of_fish_in_the_c_ieee_finds_in_language_popularity_contest/ Python #4 JavaScript keeps its spot atop programming language rankings http://www.networkworld.com/article/3101430/application-development/javascript-keeps-its-spot-atop-programming-language-rankings.html a hologram for the king wp:A Hologram for the King From herrold at owlriver.com Fri Aug 12 10:56:25 2016 From: herrold at owlriver.com (R P Herrold) Date: Fri, 12 Aug 2016 10:56:25 -0400 (EDT) Subject: [CentralOH] 2016-08-11 Aladdin's Plush Paper Napkin Scribbles: Virginia Compromise RAM, restrictor plates, lists, and generators set and list membership sysadmin skills printf lost backdoor key In-Reply-To: <20160811201022.687a0feb.jep200404@columbus.rr.com> References: <20160811201022.687a0feb.jep200404@columbus.rr.com> Message-ID: On Thu, 11 Aug 2016, jep200404 at columbus.rr.com wrote: > Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open > http://arstechnica.com/security/2016/08/microsoft-secure-boot-firmware-snafu-leaks-golden-key/ also mentioned the VW key leak http://jalopnik.com/almost-every-volkswagen-built-since-1995-is-vulnerable-1785159844 -- Russ herrold From herrold at owlriver.com Fri Aug 12 11:00:38 2016 From: herrold at owlriver.com (R P Herrold) Date: Fri, 12 Aug 2016 11:00:38 -0400 (EDT) Subject: [CentralOH] 2016-08-11 Aladdin's Plush Paper Napkin Scribbles: Virginia Compromise RAM, restrictor plates, lists, and generators set and list membership sysadmin skills printf lost backdoor key In-Reply-To: <20160811201022.687a0feb.jep200404@columbus.rr.com> References: <20160811201022.687a0feb.jep200404@columbus.rr.com> Message-ID: On Thu, 11 Aug 2016, jep200404 at columbus.rr.com wrote: > Someone thought that writing zeroes to the memory allocated by some *alloc() > call (in libc?) was unnecessary. Which call was it? Who was the proponent? malloc was recently revised in GCC / libc to not expressly zero (a change in behaviour); calloc still zeroes -- Russ herrold From jep200404 at columbus.rr.com Fri Aug 12 16:27:54 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Fri, 12 Aug 2016 16:27:54 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-05_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gSW5kaWFuIFJlc3RhdXJhbnRzIE5lYXIgS2Vubnkg?= =?utf-8?q?=26_Old_Henderson?= In-Reply-To: <20160809103327.65f4dfc7.jep200404@columbus.rr.com> References: <20160809103327.65f4dfc7.jep200404@columbus.rr.com> Message-ID: <20160812162754.6fcd8fd3.jep200404@columbus.rr.com> On Tue, 9 Aug 2016 10:33:27 -0400, jep200404 at columbus.rr.com wrote: > Dosa Corner South Indian Vegetarian > 1077 Old Henderson Rd > http://www.dosacornerrestaurant.com/ On 2016-06-28, the following was seen: Cinnamon Indian Grill Authentic Indian Restaurant (Vegetarian & Non-Vegetarian) 1140 (Old Henderson???) (in Kenny Center) Lunch Buffett ALL YOU CAN EAT!!! Monday-Sunday 11am to 3pm Monday-Thursday $8.49 Friday-Sunday $9.49 (614) 538-9790 Happy Hour Special Monday-Friday 20% off EVERYTHING 5pm-8pm Valid for Dine in and Carry Out only Quality Food at a Low Price 15% off for all students We Serve Halal Food Devliery, Pickup & Catering Grand Opening Cinnamon Indian Grill Sunday May 29th 11am to 10pm $5.99 Lunch Special All Day Hours of Operation Lunch Buffett Mon-Sat 11am-3pm Sun 11am-4pm Dinner Mon-Wed 5pm-10pm Thur-Sat 5pm-11pm Sun 4pm-10pm From jep200404 at columbus.rr.com Mon Aug 15 08:46:17 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Mon, 15 Aug 2016 08:46:17 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-12_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gcmFuZ2UoKSBpbiBQeXRob24gMiB2ZXJzdXMgcmFu?= =?utf-8?q?ge=28=29_in_Python_3=3B_git_rebase_imposter_syndrome_colorburst?= =?utf-8?q?_wheel_wheel-builder_nested_generator_expressions_sweatlodge?= Message-ID: <20160815084617.7282caff.jep200404@columbus.rr.com> range() in Python 2 versus range() in Python 3 The following table shows how long a simple "for i in range(n):" loop takes to get started. The numbers are from jupyter notebooks referenced below. n Python 2 Python 3 --------- ------------- -------- 10**7 246 ms 780 ns 10**8 2.41 s 785 ns 10**9 MemoryError 782 ns 10**12345 OverflowError 45.2 ?s In Python 2, range() makes a list. One does not get any values from it until the entire list has been built. For large n, range(n) takes a long time to make the list and also uses much memory. For very large values of n, range(n) crashes because there is not enough memory to hold the list. In Python 3, range() is a generator. It makes only one value at a time as needed, so the first value is available immediately, even for large values of n. The magnitude of n has little effect on that speed. Also, iterating over range(n) needs very little memory, so it does not crash, even for extremely large values of n. Compare: http://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160812-dojo-python2-range.ipynb http://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160812-dojo-python3-range.ipynb diff: https://github.com/james-prior/cohpy/blob/master/20160812-dojo-python2-3-range.ipynb.diff xrange() in Python 2 corresponds to range() in Python 3. See also: http://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160318-dojo-python2-range-versus-xrange.ipynb ############################################################################### git rebase instead of git merge https://git-scm.com/book/en/v2/Git-Branching-Rebasing#More-Interesting-Rebases the perils rebasing https://git-scm.com/book/en/v2/Git-Branching-Rebasing#The-Perils-of-Rebasing Government Accountability Office Study Confirms: Patent Office Encouraged Examiners To Approve ****** Patents https://www.techdirt.com/articles/20160803/15513435149/government-accountability-office-study-confirms-patent-office-encouraged-examiners-to-approve-crappy-patents.shtml?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed If you build it, they won't come: Why your project needs better marketing https://opensource.com/business/16/8/if-you-build-it-they-wont-come Advice for building a career in open source https://opensource.com/business/16/8/building-career-open-source I'm not an impostor and know exactly what I'm doing https://opensource.com/business/16/8/impostor-syndrome-and-senior-managers Maybe I shouldn't be a programmer https://www.youtube.com/watch?v=j0jjC-20N9w 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 Frank Sinatra to hummus wp:Frank Sinatra wp:Ava Gardner wp:The Barefoot Contessa wp:Barefoot Contessa wp:Ina Garten http://barefootcontessa.com/recipes.aspx?RecipeID=647&S=0 wp:Hummus https://darkartofcoding.com/learning-resources/learning-resources-puzzles/ wp:Colorburst wp:NTSC exactly 315/88 = 3.57954[a] MHz dojo at 4519_n_high:~$ python3 Python 3.4.3 (default, Oct 14 2015, 20:33:09) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 315e6/88 3579545.4545454546 >>> dojo at 4519_n_high:~$ wp:IBM_Personal_Computer#Original_PC GeoDjango Database API Compatibility Tables https://docs.djangoproject.com/en/1.10/ref/contrib/gis/db-api/#compatibility-tables Which database would you use for geodjango stuff? https://github.com/level12/wheel-builder bolt-ons different data types nbconvert to python http://nbconvert.readthedocs.io/en/latest/usage.html#convert-script bitbucket versus github bitbucket has free _private_ repos lines 71-74 have example of nested generator expressions https://github.com/cohpy/challenge-201604-words/blob/master/CWAndrews-OH/text_counter/word_count.py ARRL handbook There is a new edition very year. This is a mature field, so old versions are just fine for the vast majority of radios. wp:Military Auxiliary Radio System wp:Amateur Radio Emergency Service The Great Sweatlodge http://05d2db1380b6504cc981-8cbed8cf7e3a131cd8f1c3e383d10041.r93.cf2.rackcdn.com/pyohio-2011/525_pyohio-2011-sqlalchemy-tutorial.ogv From eric at intellovations.com Wed Aug 17 16:55:06 2016 From: eric at intellovations.com (Eric Floehr) Date: Wed, 17 Aug 2016 16:55:06 -0400 Subject: [CentralOH] Humble Programming Book Bundle Message-ID: Pay what you want for a collection of great programming ebooks, some Python related, some not: https://www.humblebundle.com/books/joy-of-coding-book-bundle?mc_cid=60a577aab6&mc_eid=67e21515ed Books include: Automate the Boring Stuff with Python The Linux Command Line Python Playground (if you pay more than $15) etc... -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Wed Aug 17 16:55:28 2016 From: eric at intellovations.com (Eric Floehr) Date: Wed, 17 Aug 2016 16:55:28 -0400 Subject: [CentralOH] Humble Programming Book Bundle In-Reply-To: References: Message-ID: I should add that proceeds benefit the EFF. On Wed, Aug 17, 2016 at 4:55 PM, Eric Floehr wrote: > Pay what you want for a collection of great programming ebooks, some > Python related, some not: > > https://www.humblebundle.com/books/joy-of-coding-book- > bundle?mc_cid=60a577aab6&mc_eid=67e21515ed > > Books include: > > Automate the Boring Stuff with Python > > The Linux Command Line > > Python Playground (if you pay more than $15) > > etc... > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Thu Aug 18 11:24:28 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Thu, 18 Aug 2016 11:24:28 -0400 Subject: [CentralOH] 2016-03-02 Michael Feathers: Preventing Technical Debt: Scribbles Message-ID: <20160818112428.0cce1fd7.jep200404@columbus.rr.com> Michael Feathers R7K Research & Conveyance Symbiotic Design Practice Preventing Technical Debt By Making Organizations Safe For Code technical debt: original definition accumulated cruft (entropy that happens in code base) developers understand this how change happens in code base another definition refactoring effect needed to add a feature onto the code base this definition enables conversations about working on the list of features to add How to change code non-invasively? What makes code easy to change! tests death by a thousand paper cuts The more and more I deal with teams that have technical debt issues or massive legacy code issues, is one of two things that is happening (or both). One is demoralization, because they feel there are in a situation where things are bad and they are not going to get better. There is the broken windows hypothesis of software development. Once things have gotten to a certain point of deterioration, it is hard to make a new leap into a new way of doing things. If things were kept clean from the very beginning, it feels wrong to step out of line and do something that is kind of yucky. You don't feel like doing the yucky thing. Most of us are working on code bases that have some degree of sprawl to them. It can happen slowly over time. It can happen due to misunderstanding between business and development. It can happen due to time pressure. People push hard to get features in under pressure. Sometimes developers push themselves even when the pressure is not there, because the pressure has been there so long. The whole thing is a disfunction of how business and development cooperate together. Version control systems are good. We don't look at old commits often enough. People influence the code. Code influences people. wp:Conway's Law mirroring of structure of code and structure of organizations structures of software teams affects structure of code We are dealing with technical debt issues that are a side effect of what we have been doing for the past ten years or so. Agile is far ahead of what we used to do, but introduces new problems. XP and scrum have a formal relation with business business comes up with features development comes up with estimates it is far more interactive than originally designed law of leaping abstractions wp:Leaky abstraction http://principles-wiki.net/principles:law_of_leaky_abstractions The Law of Leaky Abstractions http://www.joelonsoftware.com/articles/LeakyAbstractions.html code blindness businesses founded by people who have experience developing software have an easier time of working with development strong domain knowledge just need to hire people who do software many companies that do not think they are in the software business, are in the software business (e.g., banks) they understand the cadence of software development cultural disconnect get new supplier we'll motivate people this way we'll provide the right culture works or does not work some things are feasible, some things take too much effort wp:Paul Graham (computer programmer) viaweb working on the business and writing code but need to specialize at organizations grow need developers who understand the business better they will see opportunities great book wp:Jim Coplien James O. Coplien, Neil B. Harrison (July 2004). Organizational Patterns of Agile Software Development. it is easy for software architects to become disconnected from the code if they do not work with it everyday they develop a view of the system which is not in line with what it is actually doing that can become problematic one has miscommunication and dissonance so architects must be implementing code this also applies to business schism between people who are good at UX and people who are good at software design some people can excel at both more often, someone can excel at one but not both direction mapping finding code that is problematic and developing plan of action find areas of code that you are afraid of maybe it is not a good idea to add a feature to the code base feature discovery sometimes they come from looking at the code base sometimes the technical folks can see business opportunities that are easy to do technical and business must have a better relationship a customer of his: technical folks do market research see more opportunities know the technical areas where one should not push too hard not every organization can do this hard to hire, because many folks just want to do one thing (like just write javascript), but don't want to do other things. everyone in the organization codes everyone understands what technical debt is everyone understands what good and bad parts of code are full spectrum development software and other areas team structure affects code structure (Conway's thing) joining a team is hard he finds that puzzling as a consultant he does that all the time some things are difficult because we don't do it often enough to know how to do it well feature deletion!!! in biology, things die feature creep transition few customers who use it to something else businesses do this all the time with non-software stuff need to do it with software also fuddruckers just: hamburgers, french fries, and drinks avoided feature creep rotating people amongst different parts of the code software shapes business so the shape of our software is vital information michael.feathers at r7krecon.com r7krecon.com Chris Long cmm: eng. mgr. looking for full stack web devs scriptscribe.com Matt Darby leader of local crb non-profit meet every 3rd monday at cmm 18:30 questions or expound more on definition of technical debt mf: Rebels against idea that technical debt is something that can be measured on an absolute scale. There are tools that analyze your code and purport to put a price on the cost of the technical debt in the code. That's baloney. You can have parts of your code that are truly atrocious, and if nobody every changes them again, any effort you expend to fix them up is going to be wasted. I see this over and over again. As a practical matter, what matters is what impedes our work. What experience have you had with bringing business and development folks closer together? mf: has been playing with this for a couple years feature deletion when one understands the code well and a new feature is requested, would deleting some other feature substantially improve the ability to add the new feature? we can learn so much from production profiling (like how often various features are used, which ones are seldom used and good candidates for deletion) If problematic code is seldom used, consider deleting feature, and make other code cleaner. Need to have good communication with business folks. Need to have the information about the code to have those discussions. If you need the feature back, recover it from version control. Does putting a check on technical debt reduce the need to rewrite software? mf: a theory has been that if you refactor well enough, you do not have to rewrite anything. Well, sometimes we are not as disciplined as we should be and things go bad. Sometimes rewriting is easier if you do have tests in place. If something needs to be seriously refactored or rewritten, one wants to catch it before it becomes too hard. We can choose to preemptively rewrite something that is already on the edge of maintainability and get value out of that. I have a friend who has been doing this with an organization. He just left it up to the teams, saying that you are working on these various services; If you ever want to rewrite one, go ahead. Periodically, they took him up on it. Based on their technical understanding, they preemptively rewrote something before it became a multi-month nightmare. As a consultant, how do you sell the technical debt rewrite? They bring you in because you are a fire-fighter. They bring you in because of your experience. They listen to your experience. Then they tend not to do much because of the corporate culture. I do not know how to go into a place and effect change from the outside as a consultant. Do you have any tips on that? mf: Ultimately it is their decision. The best thing you can do is to outline the consequences. Sometimes the best choice is not to rewrite it, but leave it on life-support and try not to make very invasive changes. Need to get a sense of what the relative costs will be. Sometimes the best thing to do, is not rewrite it, but transition customers to a new feature set. We need to get better at evaluating what those long-term costs will be. The slides will be made available. Difference between what is taught in college and how things really work. How do you learn what really works? mf: find people that you respect and follow their path Apprenticeship Patterns be the stupidest person in the room if you are a pretty good programmer, you are probably stagnant. you may have to go somewhere where you are challenged, rub shoulders with people who know more than you beyond just doing the work develop a sense for what is good and what is not takes about four or five years after school to develop that sense it is a people thing knowing people understanding what they know digging into other peoples knowledge A/B testing if you find two groups with completely different views, compare and test them against each other it will force you to learn something how to deal with company that is so entrenched with technical debt that they should be in technical bankruptcy protection. There is no political will or acknowledgement that the emporer has no clothes and there are layers of management that exists solely to create artificial metrics to show that the code does not have technical debt when it clearly does. My solution was to walk away from the problem. mf: that may be the best thing you can do Martin Fowler said "Change your organization or change your organization." Code bases have life cycles and organizations can too. Some businesses are able to carry on with terrible technical debt because of business relationships. Others become unable to compete and die. That's just the way things happen. judgement about full spectrum do we spread folks too thin in knowing all fields of a company? it is hard things do change we used to think that in version control, that files had to be locked and that there had to be a central repository otherwise it would be madness. now distributed repos are common and do so without file locking and it opened up new flexibility we did not have earlier many of our developers in crb tend to be newbies what are traits of succesful developers individual curiosity willingness to get along with people strong work ethic i find over and over again that the people I find to be most valuable to work with are curious about everything every perspective you have on a problem give you more possibilities more possible ways of solving a problem teams google has been researching for years how good performing teams work what they found was essentially that there are teams with very different social climates like some are razzing each other all the time and joking and some are very careful in communication but ultimately, everybody has to contribute equally equality of communication listening matt darby empathy curiosity passion Working Effectively with Legacy Code Michael C. Feathers http://gotocon.com/dl/jaoo_aus2008/slides/MichaelFeathers_WorkingEffectivelywithLegacyCode.pdf From brian.costlow at gmail.com Thu Aug 18 18:06:28 2016 From: brian.costlow at gmail.com (Brian Costlow) Date: Thu, 18 Aug 2016 18:06:28 -0400 Subject: [CentralOH] Catherine Devlin Linuxfest Keynote Message-ID: Nobody tells me anything... ...or I would have made a big deal of this at PyOhio. https://ohiolinux.org/catherine-devlin-keynote-ohio-linuxfest-2016/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Fri Aug 19 22:55:39 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Fri, 19 Aug 2016 22:55:39 -0400 Subject: [CentralOH] =?utf-8?q?URL_Updates_for_2016-05-23_=E6=9C=83?= =?utf-8?q?=E8=AD=B0_Scribbles_foo_in_set=2C_foo_in_list?= In-Reply-To: <20160602200137.1963de61.jep200404@columbus.rr.com> References: <20160602200137.1963de61.jep200404@columbus.rr.com> Message-ID: <20160819225539.7878f01d.jep200404@columbus.rr.com> On Thu, 2 Jun 2016 20:01:37 -0400, jep200404 at columbus.rr.com wrote: > checking to see if each word was in the unix dictionary was slow > (90 seconds) > Is that because the unix dictionary was stored in a list > instead of a set? > > Study: > > https://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160523/cohpy-20160523-speed-of-searching-sets-and-lists.ipynb > https://github.com/james-prior/cohpy/blob/master/20160523/cohpy-20160523-speed-of-searching-sets-and-lists.ipynb The current URLs are: http://nbviewer.jupyter.org/github/james-prior/cohpy/blob/master/20160523-cohpy-speed-of-searching-sets-and-lists.ipynb https://github.com/james-prior/cohpy/blob/master/20160523-cohpy-speed-of-searching-sets-and-lists.ipynb From andrewkubera at gmail.com Sat Aug 20 13:35:02 2016 From: andrewkubera at gmail.com (Andrew Kubera) Date: Sat, 20 Aug 2016 19:35:02 +0200 Subject: [CentralOH] A Python Blog and a Tricky Question Message-ID: Hello all, I have two things: First: https://pythonconquerstheuniverse.wordpress.com I stumbled across this blog just now, and I don't think I've been directed there before; with a name like that I don't think I'd forget it. There seem to be some good gems written, so I thought I'd share. Second: (Not for the light of heart ?) I'm looking for a hack to change an immutable variable passed into a function/method, or rather, replace the value in the calling frame. This would, I guess, be like passing by reference in C++, but breaking all type safety. Example: def foo(a, b): # *magic happens* a = 5 x = "hello, friend" y = 0 foo(x, y) x == 5 # True! Of course this isn't an easy thing, it'd probably segfault if you foo(0, 'literal') or foo(None, 'singleton'), but I'm ok with that. I'll probably need inspect (get frames) and I'm not afraid of dis! Extra points if it works on a method. That's right, we're changing self: a is None # False a.make_me_none() a is None; # TRUE! ? Extra points if foo is a generator (that's right, we're using coroutines to `yield from` and asynchronously be sent something that the caller will become.) And yes, I know it's a bad idea, and I know the pythonic answer is trivially: a = a.foo() or a = yield from a.foo() But at this point, I'm curious - everything I've found is people asking if they could with replies of 'no', but I don't think the people asking were hoping to manipulate bytecode. At the core, this would allow you to write a statement (assignment) in a place that only allows an expression. Also, this allows one to write code in such a way that you can return boolean, and change a variable at the same time. ----- Pre-Send Update ----- Alright, by the time I finished writing that problem out and hitting 'send', I actually found a solution ; it was much easier than I thought (hint: sys._getframe()), but I think it could be better. As an example, I've written __call__ in class X to replace the object calling it with the argument: >>> a = X() >>> a(8) >>> a 8 I'm curious if anyone else finds a clever implementation. - Andrew Kubera -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.costlow at gmail.com Mon Aug 22 08:55:42 2016 From: brian.costlow at gmail.com (Brian Costlow) Date: Mon, 22 Aug 2016 08:55:42 -0400 Subject: [CentralOH] Fwd: [DevOps-Columbus] Fwd: DevopsDays Ohio 2016 In-Reply-To: <920272231.1471869210822.JavaMail.nobody@james1.pvt.meetup.com> References: <920272231.1471869210822.JavaMail.nobody@james1.pvt.meetup.com> Message-ID: ---------- Forwarded message ---------- From: Bill Schwanitz Date: Mon, Aug 22, 2016 at 8:34 AM Subject: [DevOps-Columbus] Fwd: DevopsDays Ohio 2016 To: DevOps-Columbus-list at meetup.com Friendly reminder our CFP ends this friday at 7PM - get your proposals submitted! Bill ---------- Forwarded message ---------- From: Bill Schwanitz Date: Thu, Jun 16, 2016 at 1:13 PM Subject: DevopsDays Ohio 2016 To: Bill Schwanitz Hello, I wanted to reach out to a few groups about the upcoming DevopsDays Ohio conference. We have finally posted the dates - please head to http://www.devopsdays.org/events/2016-ohio/welcome/ for additional details. If you or anyone you know is interested in presenting please head over to the proposals section at http://www.devopsdays.org/events/2016-ohio/propose/ . Hope to see you all there! Bill / DevopsDays Ohio team PS, sending the same message to a lot of groups. Apologies if you get the same message multiple times! -------------- next part -------------- An HTML attachment was scrubbed... URL: From jep200404 at columbus.rr.com Mon Aug 22 14:21:58 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Mon, 22 Aug 2016 14:21:58 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-19_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gdWdseSBhcmd1bWVudCBwYXJzaW5nIG1hdGNoaW5n?= =?utf-8?q?_curly_braces_feds_githut_analyzing_data_microsoft_secure_boot_?= =?utf-8?q?pandas_internet_joyoftech_arduino_rpi_Tandy_100_Don_Lancaster_S?= =?utf-8?q?-100_ADM-3A_Exploits_Of_A_Mom_ELIZA?= Message-ID: <20160822142158.3090150a.jep200404@columbus.rr.com> The argument parsing in ht sucks. It works, but it is ugly. Please improve it and make it less ugly. https://github.com/james-prior/headtail/blob/master/ht >From Dave Forgac's PyOhio presentation, Let's Make Better Command Line Applications http://pyohio.org/schedule/presentation/224/ three modules for parsing arguments were interesting to me: docopt argparse click iterum How would you find unmatched curly braces in Python? http://www.thelinuxrain.com/articles/finding-unmatched-braces-brackets US federal open source policy https://opensource.com/government/16/8/us-government-releases-new-policy-free-code http://www.wired.com/2016/08/open-source-won-now/ https://sourcecode.cio.gov/ 2046 is the last year your CEO has a business major http://venturebeat.com/2016/08/07/2046-is-the-last-year-your-ceo-has-a-business-major/ yeah right: Boss Buys Software Without Help http://dilbert.com/strip/2016-08-16 How to choose an open source music player https://opensource.com/life/16/8/how-choose-open-source-music-player githut.info ohiolinux.org/registration/ does not render well in my firefox Catherine Devlin Keynote https://ohiolinux.org/catherine-devlin-keynote-ohio-linuxfest-2016/ Analyzing Data http://www.linuxjournal.com/content/analyzing-data 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 wp:George Sturges House wp:John Lautner wp:Eero Saarinen wp:TWA Flight Center wp:Thomas J. Watson Research Center IBM Watson Researchers Share Tips for Serverless Computing on Mesos https://www.linux.com/news/ibm-watson-researchers-share-tips-serverless-computing-mesos Diana Arroyo insecurity news Microsoft's compromised Secure Boot implementation http://mjg59.dreamwidth.org/44223.html hackers claim to auction data they stole from nsa-linked spies https://www.wired.com/2016/08/hackers-claim-auction-data-stolen-nsa-linked-spies/ a new wireless hack can unlock 100 million volkswagens https://www.wired.com/2016/08/oh-good-new-hack-can-unlock-100-million-volkswagens/ security news this week: the dnc hack was worse than we thought https://www.wired.com/2016/08/security-news-week-dnc-hack-worse-thought/ the baltimore pd?s race bias extends to high-tech spying, too https://www.wired.com/2016/08/baltimore-pds-race-bias-extends-high-tech-spying/ How to fire yourself: A founder's dilemma https://opensource.com/business/16/8/how-fire-yourself-founders-dilemma Pandas http://www.linuxjournal.com/content/pandas internet U.S. says transfer of internet governance will go ahead on Oct. 1 http://www.computerworld.com/article/3108617/internet/us-says-transfer-of-internet-governance-will-go-ahead-on-oct-1.html US: We're now ready to give up our role governing the internet The US says it is ready to pass on its stewardship of the internet's domain name system to ICANN. http://www.zdnet.com/article/us-were-now-ready-to-give-up-our-role-governing-the-internet/ Python 2.7 will retire in... https://pythonclock.org/ Python 3 Statement https://python3statement.github.io/ Judge grants Happy Birthday lawyers $4.6M, citing ?unusually positive results? http://arstechnica.com/tech-policy/2016/08/lawyers-who-nixed-happy-birthday-copyright-will-get-4-6m-in-fees/ http://www.joyoftech.com/joyoftech/index.html Forrest Mims wp:Forrest_Mims#Using_LEDs_as_narrow_band_light_sensors Arduino Raspberry Pi colug.net/carpe http://lists.colug.net/pipermail/carpe/ great Cookbooks http://barefootcontessa.com/recipes.aspx?RecipeID=647&S=0 TV Typewriter Cookbook wp:Don Lancaster wp:ADM-3A http://nand2tetris.org/ wp:IMSAI 8080 tandy 100 wp:TRS-80 Model 100 put a Raspberry Pi Zero inside it put a tablet inside it with keyboard interface wp:Altair 8800 Exploits of a Mom http://xkcd.com/327/ http://xkcd.com/149/ Pok?mon Go http://xkcd.com/1705/ http://xkcd.com/1695/ wp:Markov chain wp:ELIZA wp:Joseph Weizenbaum wp:Electronic Recording Machine, Accounting wp:Magnetic ink character recognition From herrold at owlriver.com Tue Aug 23 10:36:16 2016 From: herrold at owlriver.com (R P Herrold) Date: Tue, 23 Aug 2016 10:36:16 -0400 (EDT) Subject: [CentralOH] IP lawyer consult Message-ID: On Saturday, a list member was looking for a pinter to get some fact pattern specific answers on Intellectial Property law. This meetup seems to fit the bill https://www.meetup.com/techlifecolumbus/events/232712111/ -- R From jep200404 at columbus.rr.com Sat Aug 27 15:43:53 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Sat, 27 Aug 2016 15:43:53 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-26_=E9=81=93=E5=A0=B4_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz8gRmlsZXMgZm9yIEV4cGxvcmluZyBGdW5jdGlvbiBB?= =?utf-8?q?nnotations_by_Adam_Forsyth=3B_Thanks_to_PyOhio_=26_O=27Reilly_f?= =?utf-8?q?or_Introducting_Python=3B_argument_parsing=3B_asphalt_concrete_?= =?utf-8?q?cookies=3B_cordic=3B_404=3B_25th_Birthday=3B_blerp=3B_agnes_mey?= =?utf-8?q?er_driscoll=3B_cluetrain=3B_TV_Typewrite_Cookbook=3B_Bradley_Ku?= =?utf-8?q?hn_Love_Fest?= Message-ID: <20160827154353.22ab30c2.jep200404@columbus.rr.com> Where are the files for the presentation? Exploring Function Annotations by Adam Forsyth http://pyohio.org/schedule/presentation/237/ I don't see them at github.com/agfor. Especially needed are run.py and runmypy.py. Thanks to O'Reilly and PyOhio for donating "Introducting Python" by Bill Lubanovic to the dojo's library. http://shop.oreilly.com/product/0636920028659.do headtail has become a study in Python argument parsing it now has five versions ht-ugly: works, but argument parsing code is UGLY ht-argparse: works almost the same using argparse module Thanks Andrew! Thanks to Travis for the following! ht-argparse-travis: uses argparse ht-docopt: uses docopt to parse arguments ht-click: uses click to parse arguments click is interesting (github.com/james-prior/headtail) The Story of How the Apple I Computer Could Fetch $1 Million at Auction http://fortune.com/2016/08/22/apple-1-auction/ wp:composite material wp:asphalt concrete asphalt concrete cookies The aggregate is the crispy rice. The cement is the corn syrup, sugar, peanut butter mixture. Crispy Rice Cookies (compare to Rice Krispies) 269 g (1 cup) light corn syrup 192 g (1 cup) sugar 204 g (1 cup) peanut butter 177 g (6 cups) crispy rice non-stick everything is good for making this heat corn syrup and completely dissolve sugar into it after sugar is completely dissovled, mix in peanut butter just barely bring back to boil mix with crispy rice and spread out on baking sheet wrap whole baking sheet with plastic wrap put in refrigerator, wait a few hours to cool take sheet out of refrigerator flex sheet to get cookie to unstick from sheet holding a butter knife by blade, whack monolithic cookie with handle of butter knife when the one big cookie has been broken in to suitable size pieces, unwrap the baking sheet and tranfer the shattered pieces to serving plate ?I?ve killed at least two Mac conferences. [...] by injecting Microsoft content into the conference, the conference got shut down. The guy who ran it said, why am I doing this?? http://techrights.org/2016/08/23/microsoft-extorts-lenovo-and-motorola/ wp:CORDIC Great model number wp:Peugeot 404 wp:Toots Thielemans wp:Sheldon Brown (bicycle mechanic) http://www.sheldonbrown.com/tire-sizing.html wp:ISO 5775 wp:European Tyre and Rim Technical Organisation 25 years old We can sing "Happy Birthday" without paying royalties. http://www.linuxjournal.com/content/happy-birthday-linux http://www.techrepublic.com/article/twenty-five-years-of-linux-overcoming-hurdles-and-overshooting-goals/ http://www.zdnet.com/pictures/the-25-biggest-events-in-linuxs-25-year-history/#ftag=RSSbaffb68 http://www.theregister.co.uk/2016/08/26/linux_at_25/ Glances (All in one Place)? An Advanced Real Time System Performance Monitoring Tool for Linux http://www.2daygeek.com/install-glances-advanced-real-time-linux-system-performance-monitoring-tool-on-centos-fedora-ubuntu-debian-opensuse-arch-linux/ http://www.xkcd.com/1692/ https://www.explainxkcd.com/wiki/index.php/1692:_Man_Page wp:BOFH regex problem and solution https://github.com/deeppunster/regex_problem http://nbviewer.jupyter.org/github/james-prior/travis_regex_problem/blob/master/20160826-dojo-regex-travis.ipynb wp:Refugee Tract wp:Connecticut Western Reserve wp:Agnes Meyer Driscoll wp:List of Ohio State University people wp:Communications Machine http://cluetrain.com/book/ tinaja.com flutterwhumpers http://www.tinaja.com/ebksamp1.shtml fantastic!!!! TV Typewriter Cookbook http://www.tinaja.com/ebooks/tvtcb.pdf Bradley Kuhn love fest http://www.theregister.co.uk/2016/08/26/linus_torvalds_calls_own_lawyers_nasty_festering_disease/ From jep200404 at columbus.rr.com Tue Aug 30 18:38:49 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Tue, 30 Aug 2016 18:38:49 -0400 Subject: [CentralOH] =?utf-8?q?2016-08-29_=E6=9C=83=E8=AD=B0_Scribbles_?= =?utf-8?b?76SY5pu4L+aDoeaWhz86IENyaXN0YSBMb3BlcyBFeGVyY2lzZXMgaW4gUHJv?= =?utf-8?q?gramming_Style=3B_refactoring_tf-05=2Epy=3B_Andrew_Kubera_CERN_?= =?utf-8?q?unlimited_energy_Pb_He_Au_smash_plum_Pudding=3B_Refactoring_Cha?= =?utf-8?q?llenge=3B_Full_1920x1080_with_VGA=3B_UNIX_Philosophy=3B_CARPE_o?= =?utf-8?q?n_2016-09-20?= Message-ID: <20160830183849.52be5a39.jep200404@columbus.rr.com> Thanks to Pillar and Chris Baker for their hospitality. There was plenty of food and drink. Pillar is always looking for good folks. ############################################################################### Jim Prior led a live refactoring session of code from the Exercises in Programming Style stuff that Chris Baker mentioned last month. It was done in a Jupyter Notebook that you can review: http://nbviewer.jupyter.org/github/cohpy/20160829-refactoring-exercise/blob/cohpy-20160829/05-pipeline/tf-05.py-cohpy-20160829-refactoring.ipynb wp:Chemical Rubber Company wp:CRC Handbook of Chemistry and Physics 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 Exercises in Programming Style Christina Videira Lopes @cristalopes wp:Ninety-five Theses wp:Copia: Foundations of the Abundant Style wp:Desiderius Erasmus wp:Exercises in Style wp:Raymond Queneau Metaphor Surprises Dream Prognostication Hesitation Precision Negativities Asides Anagrams Logical analysis Past Present ... wp:zazou wp:Stop Making Sense wp:Swingjugend wp:Edelweiss Pirates wp:Instituto Superior T?cnico GOTO 2013 ? Exercises in Style ? Cristina Videira Lopes https://www.youtube.com/watch?v=Gw4WJJoDl3U Crista Lopes - Exercises in Programming Style - Curry On https://www.youtube.com/watch?v=JlPMOszyjjo wp:A Void wp:Oulipo style was something that emerged after constraint(s) were imposed potential literature: "the seeking of new structures and patterns which may be used by writers in any way they enjoy." E.g. "A Void" (La Disparition) by Georges Perec constraints lead to creativity wp:Stop words Curry On Rome! 2016 http://www.curry-on.org/ Programming Styles Ways of expressing tasks How to divide task into parts and put them back together Exist and recur at all scales Frozen in Programming Languages Saw huge amount of really bad code from 3 and 4 year advanced students monads category theory ? wp:Taijitu wp:Monad (category theory) wp:Monad (functional programming) wp:Monad (philosophy) The story: Term Frequency given a text file, output a list of the 25 most frequently-occurring words, ordered by decreasing frequency exclude stop words and single letter words Take Home Many ways of solving problems know them, assess them what are you trying to optimize? constraints are important for communication make them explicit don't be hostage of one way of doing things How do you structure your thoughts? how do you divide the problem? How do you put it back together? Spreadsheet Style how would you count words with excel? ############################################################################### Andrew Kubera presented on the work he did at CERN (home of www). speed is limited energy is _not_ lmiited gamma aka Lorenz factor wp:Lorentz factor https://github.com/akubera/pipi_analysis gamma of 6500? for Pb208? smash helium into gold two atoms thick how about 400 atoms thick? wp:Plum pudding model wp:Geiger?Marsden experiment ############################################################################### Challenge for this month is to refactor a little program. https://github.com/cohpy/challenge-201608-refactor ############################################################################### cheap selfie stick was not just one piece the stick and part that holds smart phone were separate, with standard camera threads to join them made it easy to use gumby tripod to hold smartphone Chris' VGA to HDMI adapter worked great allowed presenters to be with everyone else handled full 1920x1080 resolution LCD display on left showed full 1920x1080 projector in middle showed full 1920x1080 It's contrast, brightness, gamma might be maladjusted. LCD display on right cropped display wp:Unified Thread Standard wp:British Standard Whitworth wp:Tripod_(photography)#Screw_thread wp:Orson Scott Card How Software Companies Die -by Orson Scott Card https://www.netjeff.com/humor/item.cgi?file=DeveloperBees Compare the above with Books Six and Seven of "The Tao of Programming" by Geoffrey James. wp:Unix philosophy wp:Unix_philosophy#Mike_Gancarz:_The_UNIX_Philosophy wp:Unix_philosophy#Eric_Raymond.E2.80.99s_17_Unix_Rules wp:The Art of Unix Programming ############################################################################### There will be a CARPE meeting on Tuesday September 20, with a presentation on soldering. Poll colug.net/carpe for details. From jep200404 at columbus.rr.com Tue Aug 30 20:27:40 2016 From: jep200404 at columbus.rr.com (jep200404 at columbus.rr.com) Date: Tue, 30 Aug 2016 20:27:40 -0400 Subject: [CentralOH] 2016-09-01 (A Thursday) Python Lunch at Ray Ray's Hog Pit Message-ID: <20160830202740.1d548e7b.jep200404@columbus.rr.com> Python Lunch at Ray Ray's Hog Pit September 1, 2016, 12:00 p.m. (that's on a Thursday) Ray Ray's Hog Pit[1] 2619 N High St Columbus, OH 43202[2] The last time we were there, there was a long line at noon. Maybe we should show up early. Seating is outdoors. The forecast is for spectacularly good weather. [1] http://www.rayrayshogpit.com/ http://www.bizjournals.com/columbus/news/2015/10/16/with-ray-rays-hog-pit-thriving-food-truck-owner.html http://www.bizjournals.com/columbus/search/results?q=James%20Anderson [2] http://www.openstreetmap.org/way/384459006#map=19/40.01577/-83.01217 From eric at intellovations.com Tue Aug 30 21:03:10 2016 From: eric at intellovations.com (Eric Floehr) Date: Tue, 30 Aug 2016 21:03:10 -0400 Subject: [CentralOH] 2016-09-01 (A Thursday) Python Lunch at Ray Ray's Hog Pit In-Reply-To: <20160830202740.1d548e7b.jep200404@columbus.rr.com> References: <20160830202740.1d548e7b.jep200404@columbus.rr.com> Message-ID: RSVP Here: http://www.meetup.com/Central-Ohio-Python-Users-Group/events/233752717/ On Tue, Aug 30, 2016 at 8:27 PM, wrote: > Python Lunch at Ray Ray's Hog Pit > > September 1, 2016, 12:00 p.m. > (that's on a Thursday) > > Ray Ray's Hog Pit[1] > 2619 N High St > Columbus, OH 43202[2] > > The last time we were there, there was a long line at noon. > Maybe we should show up early. > > Seating is outdoors. The forecast is for spectacularly good weather. > > [1] http://www.rayrayshogpit.com/ > http://www.bizjournals.com/columbus/news/2015/10/16/with- > ray-rays-hog-pit-thriving-food-truck-owner.html > http://www.bizjournals.com/columbus/search/results?q=James%20Anderson > [2] http://www.openstreetmap.org/way/384459006#map=19/40.01577/-83.01217 > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric at intellovations.com Tue Aug 30 21:10:21 2016 From: eric at intellovations.com (Eric Floehr) Date: Tue, 30 Aug 2016 21:10:21 -0400 Subject: [CentralOH] August Python Challenge Message-ID: All, This month's COhPy Python Challenge is on refactoring. The repository with instructions can be found here: https://github.com/cohpy/challenge-201608-refactor Sometimes old computer books can provide simple challenges or interesting programs that are often overlooked today. The program to be refactored is a small program that generates pretty pictures algorithmically. The formula used is one mentioned in A. K. Dewdney's book "The Armchair Universe" from 1987. The chapter with the formula, "Wallpaper for the Mind" is based on a Computer Recreations column from Scientific American. A pdf of that article can be found here: https://www.dropbox.com/s/4wub318265sw8no/Computer_Recreations_Column_1986_Wallpaper.pdf Instructions on how to submit entries to the challenge are in the README thanks to Jim Prior. There are no right or wrong answers! This is an opportunity to flex your refactoring muscles. Best Regards, Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From miller.eric.t at gmail.com Tue Aug 30 21:16:16 2016 From: miller.eric.t at gmail.com (Eric Miller) Date: Tue, 30 Aug 2016 18:16:16 -0700 Subject: [CentralOH] August Python Challenge In-Reply-To: References: Message-ID: Wow.... super creative and compelling challenge, Eric. On Aug 30, 2016 6:10 PM, "Eric Floehr" wrote: > All, > > This month's COhPy Python Challenge is on refactoring. The repository with > instructions can be found here: > > https://github.com/cohpy/challenge-201608-refactor > > Sometimes old computer books can provide simple challenges or interesting > programs that are often overlooked today. The program to be refactored is a > small program that generates pretty pictures algorithmically. The formula > used is one mentioned in A. K. Dewdney's book "The Armchair Universe" from > 1987. > > The chapter with the formula, "Wallpaper for the Mind" is based on a > Computer Recreations column from Scientific American. A pdf of that article > can be found here: > > https://www.dropbox.com/s/4wub318265sw8no/Computer_ > Recreations_Column_1986_Wallpaper.pdf > > Instructions on how to submit entries to the challenge are in the README > thanks to Jim Prior. > > There are no right or wrong answers! This is an opportunity to flex your > refactoring muscles. > > Best Regards, > Eric > > > > > _______________________________________________ > CentralOH mailing list > CentralOH at python.org > https://mail.python.org/mailman/listinfo/centraloh > > -------------- next part -------------- An HTML attachment was scrubbed... URL: