Open Source

Liza Avramenko on CheckIO and Empire of Code - Episode 18

Visit our site to listen to past episodes, find additional content, sign up for our newsletter or learn about the hosts.

Summary

In this episode we talked to Liza Avramenko, the CEO of CheckIO, about Empire of Code and CheckIO. We discussed what differentiates them from each other and from the other coding games that have been spreading on the internet. One of the main differentiators for CheckIO in particular is the strong focus on community. The bottom line is that if you use Python then you should check out CheckIO and Empire of Code as a great way to practice your skills.

Brief Intro

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback on iTunes, Twitter, email or Disqus
  • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
  • We are recording today on July 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Liza Avramenko about CheckIO

Interview

  • Please introduce yourself
  • How did you get introduced to Python?
    • Learned about it from Co-Founder Alex
  • For anyone not familiar with CheckIO, can you explain what it is?
  • What was the inspiration for creating the CheckIO platform?
    • Alex was bored working in a bank and wanted to create a place for sharing practice problems
  • What is your goal with this platform?
    • Become global community for most popular coding languages
    • Remain open and supportive
  • How do you deal with the question of ownership and licensing in CheckIO? Was this a tricky hurdle to get past in the site’s creation?
    • Being willing to share solutions publicly is a core part of the site.
      • This had to be more explicitly stated due to some users confusion early on.
  • Growing a community is difficult because of the chicken and egg problem. How did you kickstart the growth of the CheckIO community?
    • Community always number one priority
    • Started organically
    • Initially had 24/7 live chat to help new users
    • Openness was attractive, led to critical mass
    • As community grew, need for live chat decreased
    • Nature of Python community lends itself well to a collaborative, open community
    • Guido provided advice on how to grow and foster community
  • Guido himself has participated in a number of conversations on your platform to critique submissions. Have you received any feedback from him directly about his impressions of the system?
  • How does diversity play into CheckIO? Are there aspects of the site’s design that are purposefully meant to attract a diverse audience?
    • CheckIO has always targeted people with basic coding experience
    • Early live chat feedback focused around very new coders wishing there was more material for them
    • These early challenges resulted in the development of Empire of Code
  • There are a number of other online programming-oriented games available. What makes CheckIO and Empire of Code stand out from them?
    • Priority of community
    • Others are more about gaming, showcasing talent
  • How did you design the gamification aspects of CheckIO, and how important do you think they are to the site’s success?
    • CheckIO was never a game, more of a library of challenges that have game elements
    • Empire of Code is all about gamification, code and algo improvement are baked into the gameplay
      • You choose Python or Javascript “legions” at character creation time, this is a one time choice.
      • Buildings, troop movements, materials, etc. are all based in code
      • Players can steal code and algorithms from other players
        • Incredible innovation
      • Great adoption story for new users – can start playing without writing any code
        • But in order to really excel you will WANT to start writing code
        • So many people have their original motivations for coding come from playing games
      • Cooperative play in the form of training missions with other players
        • This is an opportunity to learn how people on the other side are solving the same problem
      • New languages are planned – Ruby, maybe Java?
  • Do you think that there is something about the Python language or community that inspires adoption of this kind of gamified practice?
  • You recently released the beta of a new experience called Empire of Code which is more akin to the type of video game that many people are familiar with. What inspired that evolution?
    • As part of the new experience, you also added JavaScript as an available language. Do you intend to add new languages in the future?
    • Is there a particular demographic or set of demographics that you are targeting with Empire of Code vs CheckIO?
  • What’s the monetization strategy for Empire of Code or CheckIO?
    • For Empire, you can play for free but you might keep losing your resources until you can learn to code more effectively, OR you can buy a shield which will protect your resources for a time.
  • In CheckIO, how do you label the difficulty level of the individual puzzles, is there a set of guidelines for that or is it up to the puzzle writer / submitter?
    • CheckIO trusts its community
      • The community rates each challenge
  • Part of the CheckIO platform is the ability for users to submit their own problems. How much vetting is involved before these submissions are available to users of the site?
  • Where do you see CheckIO and Empire of Code going in the future?
    • Want to have Empire of Code known as the best online game that blends in programming by the end of 2016
    • In ~5 years want to see people saying the CheckIO/Empire of Code inspired people to program as a career
    • In ~10 years want to see all major languages represented
    • Aiming to become a major game publisher

Picks

Keep In Touch

Glyph on Ethics in Software - Episode 17

Visit our site for past episodes and extra content.

Summary

In this episode we had a nice long conversation with Glyph Lefkowitz of Twisted fame about his views on the need for an established code of ethics in the software industry. Some of the main points that were covered include the need for maintaining a proper scope in the ongoing discussion, the responsibilities of individuals and corporations, and how any such code might compare with those employed by other professions. This is something that every engineer should be thinking about and the material that we cover will give you a good starting point when talking to your compatriots.

Brief Introduction

  • Welcome to Podcast.__init__ the podcast about Python and the people who make it great
  • Date of recording – July 21, 2015
  • Hosts Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher, TuneIn, Google+ and Twitter
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
  • Overview – Interview with Firstname Lastname about Topic

Interview with Glyph

  • Introductions
  • How did you get introduced to Python? – Chris
    • 2000 – large scale collaborative gaming system in Java
      • Asynchronous IO
      • Twisted
  • Let’s start with the bad news :) What are some of the potential wide spread implications of less than ethical software that you were referring to in your Pycon talk? – Chris
    • Robot Apocalypse :) (Not really)
      • Much of the discussion around this derails into unrealistic nightmare scenarios
      • THERAC 25 radiation machine
      • Toyota unintended acceleration scandal
    • Real worry – gradual erosion of trust in programmers and computers
    • First requirement for a code of ethics – a clear understanding of the reality you’re trying to litigate
    • The search for ethics will likely begin in academia where this aspect of software dev is more like psychology.
  • In your talk you commented on the training courses that Lawyers are required to take as part of their certification. Do you think the fact that there is no standardized certification body for software development contributes to a lack of widely held ethical principles in software engineering? – Tobias
    • Do you think that it is necessary to form such a certification mechanism for developers as part of the effort to establish a recognized ethical code? – Tobias
    • If we were to create a certification to indicate proper training in the software engineers code of ethics, how do you think that would affect the rate at which people enter the industry? – Tobias
  • Assuming we can all agree on a set of relatively strict professional ethics that would prevent the above from happening, how would we enforce those ethics? Or do you advocate an honor system? – Chris
    • Ethics are by definition an honors system
    • Enforcement would be straight forward – professional organizations to maintain a record and deviations from that record
    • Need better laws & better jurisprudence
    • We need an Underwriters Laboratory seal for software development ethics
    • Code of software ethics will not and should not tell you how to be a decent human being.
    • Devs / companies can create software that could be used for evil – “We are merchants of death and these are lethal weapons” – could conceivably earn the ethical software developer’s seal of approval.
  • Where does accessibility of the software we make fit into a code of ethics? Do you think there should be a minimum level of support for technologies such as screen readers or captioning for audio content in the software that we build? – Tobias
    • Minimum levels of knowledge required
    • Minimum levels of content in curriculum
  • In your talk you mentioned how Rackspace’s stance on user support matches the ideals you’d previously laid out, can you flesh that out a bit for us? What does that mean to individual Rackers in their day to day work lives? – Chris
  • In your talk you mentioned that availability of the software source should be mandatory for compliance with a properly defined ethical framework. What mechanisms for providing that access do you think would be acceptable? Should there be a central repository for housing and providing access to that source? – Tobias
    • Would the list of acceptable mechanisms change according to the intended audience of the software? – Tobias
    • What responsibility do you think producers of software should have to maintain an archive of the source for past versions? – Tobias
    • How should we define what level of access is provided? In the case of commercial software should the source only be available to paying customers, perhaps delivered along with the product? This also poses an interesting quandary for SaaS providers. Should they provide the source to their systems only to paying customers, or to potential customers as well? – Tobias
    • This question of transparency and availability of source is especially interesting in the light of a number of stories that have come out recently about patients who have been provided with prostheses and other medical devices. In a number of cases, shortly after receiving the device, the company who made it, which are increasingly startups, goes out of business, leaving the patient with no way of obtaining support for something that they are dependent on for their health and well-being. Having the source for those devices available would help mitigate the impact of such a situation. – Tobias
  • You brought up an interesting aspect of the trust equation and its relevance to the need for an ethical code. Because what we do as software engineers is effectively viewed as sorcery by a vast majority of the public, they must therefore wholly place their trust in us as part of using the products that we create. As you mentioned with the demise of the scribe with the rise of literacy, increasing the overall awareness of how software works at a basic level partially reduces that depency of trust. At what level of aptitude do you think our relationship with our users becomes more equitable? How does the concept of source availability play into this topic of general education? – Tobias
  • What can the Python community in particular do to start the ball rolling towards defining a set of professional ethics, and what has it already done in this area? – Chris
    • PSF Code of Conduct is a starting point
      • PSF is an organization of individuals
      • Corporations are cagey about getting involved for fear of it becoming a legally binding contract
    • Django Code of Conduct more specific

Picks

Keep In Touch

Holger Krekel on Py.Test - Episode 16

Visit our site to listen to past episodes, learn more about the show and sign up for our mailing list.

Summary

In this episode we talked to Holger Krekel about the py.test library. We discussed the various styles of testing that it supports, the plugin system and how it compares to the unittest library. We also reviewed some of the challenges around packaging and releasing Python software and our thoughts on some ways that they can be improved.

Brief Introduction

  • Welcome to Podcast.__init__ the podcast about Python and the people who make it great
  • Date of recording – July 8th, 2015
  • Hosts Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback on iTunes, Twitter, email or Disqus)
  • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation}. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
  • Overview – Interview with Holger Krekel about his work on Pytest

Interview with Holger Krekel

  • Introductions
    • Programming for 25 years
    • Runs a consultancy
    • Been to almost every EuroPyCon and PyCon US
  • How did you get introduced to Python? – Chris
    • Wanted to write an HTTP proxy and Java I/O was too confusing. Jython took less than a day to get it working after 2-3 days on it with Java.
  • What inspired you to create Pytest, and how did the existing unittest framework play into the story? – Chris
    • Introduced to agile methods through the Zope community
    • Zope used unittest – didn’t like the boiler plate
    • Not in the spirit of Python
    • Only took ~200 lines of code to get a testing tool working
    • Original name was ‘utest’ – 2003
    • Pytest name came in 2004 on Pypy project
    • Huge number of tests on that project (20,000) – distributed test runner – xdist helped solve this.
  • There are many different styles of testing, such as BDD, unit testing, integration testing, functional testing, what attributes of py.test make it suitable or unsuitable for these different approaches? – Tobias
    • What are your views on black box testing and how would someone use py.test to implement this approach? – Tobias
    • Pytest’s plugin architecture enables you to hook into the various phases of test execution enabling you to extend Pytest in all kinds of ways beyond the original design.
    • I have been hearing a lot about property based testing which was popularized by the Quickcheck module in Haskell. Does py.test support anything like that? – Tobias
    • hypothesis-pytest
  • Do you think the characteristics and nature of the unit testing framework being used have any effect on the number and quality of the tests developers write? – Chris
    • Developers find writing tests in Pytest to be fun compared to unittest
    • Which will help people write better tests
    • Encourages refactoring
  • Is there ever a time when you would advice _against_ writing tests? – Tobias
    • When exploring a problem, writing tests first doesn’t make sense
    • When getting feedback on a potential approach, writing tests first can be a waste of time
  • What are some signs that you watch out for when writing tests that tell you that a particular feature needs to be refactored? – Tobias
    • When the test code is fragile it should be refactored
    • Requires experience to really understand when to refactor
    • When it’s not fun anymore or the tests are repetitive
  • For someone who is converting their existing unit tests from UnitTest/Nose style to use py.test in an idiomatic manner, what are some of the biggest differences to be aware of? – Tobias
    • Generator/yield based testing should move to property based testing
    • If py.test can’t run a UnitTest/Nose style test it is considered a bug and gets fixed
  • Has the strict backwards compatibility policy presented any interesting technical challenges thus far? – Chris
    • Yes it definitely makes more work
    • However breaking the API in a large project like this will cause too many problems for users
  • py.test supports execution of tests written with other frameworks, how much ongoing maintenance does this feature require as changes are made to the other implementations? – Tobias
  • The web page says that Pytest is designed to work with domain specific and non Python tests, and in fact a coworker is using it to test a node.js project – how did Pytest’s design enable this? – Chris
    • Pytest uses a collection tree model to represent your project
      • This is not Python specific
      • All classes and functions are just mapped into this tree, not directly on the Python function
    • There are few Python specific hooks for fixtures etc.
    • People have written plugins so they can express their tests in YAML, Microsoft Excel
    • Tests are represented as items
    • All plugins are written in Python
  • What are some of the most interesting applications of py.test that you have seen? – Tobias
  • Speaking about adoption, do you have any sense of the relative adoption of Pytest versus unitest or other tools? – Tobias
    • Very hard to actually know
    • Download numbers are not a clear indicator due to robots, CI systems, etc.
    • Quantifying market share is hard to do
    • Popularity is not a useful heuristic in determining a good fot for technology adoption
      • But popularity is an indicator for the level of support you might receive
      • Tech can be popular but very poorly maintained
  • Are there any features of py.test that would make it suitable for use with configuration management tools and infrastructure testing? – Tobias
    • Example driven testing
    • Run py.test from a blackbox approach
    • Largest benefit would be from having one testing tool used across the organization
  • Where do you see Pytest and more generally test frameworks headed in the future? – Chris
  • Any questions we didn’t ask?
    • Pytest is a very healthy project! There are 10 regular contributors – this is exceptional among OSS projects

Picks

Keep In Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Damien George Talks To Us About MicroPython - Episode 15

Visit our site for more news, information and past episodes of Podcast.__init__!

Summary

We talked to Damien George about his work on the Micro Python interpreter and the PyBoard SOC (Systom On a Chip). The combination of the interpreter and SOC allows Python developers to get involved in hardware hacking, as well as letting electronics afficionados try their hand at development. Damien explained to us where this fits in with the expanding landscape of low cost embedded devices and why you should get one to start playing with it.

Brief Introduction

  • Date of recording – June 29th, 2015
  • Hosts – Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!
  • Overview – Interview with Damien George from the Micro Python project

Interview with Damien George

  • Introductions
    • Postdoc in Theoretical Physics
  • How did you get introduced to Python?
  • What problem were you trying to solve when you first had the idea to create the Micro Python board and interpreter?
    • Not really :)
    • Python lets you get things done quickly
    • Abstracts the hardware really well
  • In the Kickstarter video you mention that Micro Python is a complete re-implementation of Python optimized to run on a micro-controller. How hard was it to create an alternative Python implementation? Did you have hard decisions to make as to what to include given the limitations of the hardware?
    • To start with, was it even possible?
      • Proof of Concept: Get a REPL running on the board
    • Lots of tricks to get things to fit into RAM
      • Stuffing integers into pointers
      • Optimizing RAM at various points
      • Runs the parser 4 times, looking for different things each time
      • Lots of things are stored in ROM in the built-in Flash
    • Very fine efficiency trade off between code size, memory usage, speed.
    • REPL runs in 1K of RAM!
      • Most of this is the parse tree
    • 20 line script might take ~5K RAM
    • 128K RAM on the Micro Python board
    • Not 100% Python – but 90% – the most useful parts
  • I know that people who have developed alternative Ruby implementations have run into issues due to the lack of a formal specification. Has the fact that there is a specification for Python made your job easier?
    • Definitely, Python is very well defined
    • Well documented
    • Already multiple implementations
  • The WiPy chip seems like an interesting device. What are some ways in which it could be put to use? A Micro Python cluster for instance?
    • Small, cheap, low power little wireless chip that also runs Python
    • You can telnet in and have a Python REPL
    • Part of the Internet of Things
  • What changes did you have to make to get the Python interpreter to run without an underlying operating system?
  • When you were designing the hardware, what were some of the requirements that you were targeting in terms of performance or peripherals?
    • Wanted the best chip for the least money
    • Didn’t know ahead of time how many resources were required
  • What level of hardware knowledge is required to start working with the Micro Python board?
    • Virtually none
    • Just need to plug into USB and login with a terminal program to get a Python prompt
    • Can change frequency of CPU, turn on/off LEDs, etc.
    • Connecting peripherals requires some hardware knowledge
    • Module namespace to make hardware management easier
  • For anyone who is interested in writing libraries, what kinds of restrictions do they need to be aware of?
    • Be aware of RAM size limitations
    • Prety much anything that will fit will work
    • Libraries with C extensions won’t work because they rely on the CPython API
  • What license is used for the Micro Python interpreter and the PyBoard? Are the compatible with commercial uses?
    • MIT License
    • Hardware schematics are open source as well, open and accessible design
  • What are some of the most interesting/innovative projects that you have seen people make with the Micro Python board or runtime?
    • Damien attempted to make a quadcopter – not completely finished
    • Micro Python controlled guitar – PyBoard connected to actuators to play guitar
  • How does the experience of using Micro Python compare to some of the other hardware projects that are popular right now such as Arduino, Raspberry Pi or Tessel?
    • PyBoard in between Arduino and Raspberry Pi
      • More approachable than Arduino
      • Not a full OS like Raspberry Pi
    • Tessel similar to Micro Python but runs Javascript
  • EU Space Agency (Europe’s version of NASA) interested in Micro Python
    • Prepared to fund Micro Python development to explore possibilities of space based applications
      • Code needs to be well written and with few bugs
      • See if it can be used for real-time systems

Picks

Keep in Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Jacob Kovac on KivEnt - Episode 13

Listen to past episodes and find out more about the show at our website pythonpodcast.com

Synopsis

In this episode we talked to Jacob Kovac, creator of the KivEnt game engine and one of the Kivy core developers. He told us about what inspired him to create the KivEnt project, some of the ways that he has managed to optimize rendering time and some of the problems that he has encountered as part of his work on the project. We also discussed what the use cases and limitations of the KivEnt engine are and he shared some of the projects that have been made with it.

Brief Introduction

  • Date of recording – June 17th, 2015
  • Hosts – Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • We don’t have any corporate sponsorship or advertisements in the show because we are making it for the community and we respect our listeners and value your time. If you would like to help support the show and keep it ad-free you can find out how by visiting our website
  • Overview – Interview with Jacob Kovac about the KivEnt Game Engine, based off of Kivy

Interview with Jacob Kovac

  • Introductions
  • How did you get introduced to Python? – Chris
  • Could you please give us a high level overview of KivEnt and how it differs from other game builder frameworks like Unity or Unreal?
    • Manages memory for game objects and stores them contiguously in memory for greater efficiency
    • Real-time focused rendering engine for Kivy
    • Cython interface to provide performant game objects with Python API
    • Increased speed of main render loop by 38X by removing a single Python list lookup
    • Kivent is mainly 2D focused, vs 3D for Unity/Unreal
    • Python all the way down
      • Cython and pointer magic for optimization purposes
    • Made to be familiar to Pythonistas
    • Aiming for “A” level games
    • Bringing modern advancements in making games to Python – GPU awareness
    • Built with constraints in mind
    • The Pacman Dossier
  • What inspired you to create the KivEnt engine?
    • Tried to create an Android infinite runner in Kivy, performance was unacceptable
    • Looking for how to build games in Python with large amounts of data
  • Is there a particular kind of game KivEnt is particularly suited for versus any of the other popular frameworks?
    • Focuses mainly on 2D, agnostic as to ‘type’ of game
    • Jacob’s interests largely focused on procedurally generated environments
  • Could KivEnt be used to create networked multiplayer games and what challenges might that bring to the table for the aspiring KivEnt game developer?
    • Multiplayer thought to be largely out of scope
      • This doesn’t mean KivEnt is bad for multiplayer games, but that KivEnt in and of itself doesn’t wholly solve this problem.
      • Plenty of other frameworks to draw on for handling the multi-player server or pulling data from it, KivEnt solves the client side problems germane to making a game in Python
  • Does the fact that KivEnt games need to run on so many platforms present any unique difficulties in KivEnt’s development?
    • Kivy has solved most of the cross-platform problems
    • Difference in GPU vendors has proved the most difficult
  • I hear game developers talk a lot about assets and asset formats. What kinds of assets can be used with KivEnt?
    • 2D assets are simple – especially as compared to 3D
    • KivEnt supports any image format that Kivvy does for your platform
    • Coming next release – you can specify the vertex format for your model
    • https://youtu.be/qe9fWC-2e3M
  • I have heard that unit testing games is difficult and rarely done for reasons of time pressure, as well as lack of determinism in the interactions. Does KivEnt provide any utilities to make this easier?
    • Not currently well tested, but targeting that for next release
    • Trying to add tooling to make testing games easier, though still somewhat difficult
    • Platform Biased Podcast – by a bunch of Microsoft Studios SDETs
  • How does KivEnt handle input and what kids of input devices are supported?
    • Input handled entirely by Kivy, so any inputs supported by Kivy are accessible in KivEnt
    • Rumors of using Kinect camera with Kivy/KivEnt applications
  • Is there a built in physics engine or is that something that is pluggable?
    • Mostly pluggable
    • Chipmunk 2D integration provided via a module
    • Particle Panda – one of the major inspirations for KivEnt
    • New Particle engine coming in the next version of KivEnt
  • How does KivEnt handle collision tracking?
    • Mathematically difficult, very hard to get right
    • Don’t do it! Use the physics engine – Chipmunk 2D is also a collision detection engine
    • Kivy enables devs to use C, C++, Java and Objective C code in their games
    • Game development has been democratized
    • Entity / Component architecture enables great modularity
    • Game objects that appear on the screen (Gun, ball, etc.) are not represented as such in the system
  • Can you tell us about some of the projects that you have seen built in KivEnt which you are most excited by?
    • https://github.com/chozabu/KivEntEd
    • https://play.google.com/store/apps/details?id=org.chozabu.boardzfree&hl=en
  • What are some ways in which our listeners could help contribute to the project?
    • Would like to see more people build games in KivEnt
      • Give feedback about the experience and what can be improved
    • If you have Apple hardware, try out KivEnt and file issues with any errors that occur

Picks

Keep in Touch

  • E-Mail – kovac
  • Blog – chaosbuffalogames.com/blog
  • IRC – #kivy

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Eric Schles on Fighting Human Trafficking with Python - Episode 12

Listen to past episodes, read about the hosts or donate to the show at podcastinit.com

Brief Introduction

  • Date of recording – June 10th, 2015
  • Hosts Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!
  • Overview – Interview with Eric Schles

Interview with Eric Schles

  • Introductions
  • How did you get introduced to Python?
  • What inspired you to take up the fight against slavery? Is there personal story behind this choice?
  • Some of your work touches on the “Deep Web”. Can you provide listeners with some context around what that term means and role it plays in what you do?
    • Tor .onion sites (Hidden Services) are examples
    • Anonymous Web Experience
    • Anonymity allows for illegal, immoral things like buying selling people
    • Conceptually very important idea
    • Bruce Schneier – Web technologies need to be more privacy aware
    • Like a really scary version of “The Internet of the Old Days”
    • Photos of young, exploited men and women
    • Pedophiles are building communities, having parties through these hidden services
    • Eric feels that Tor is an extreme
    • Feels there had to be a way to protect the rights of legitimate while protecting against pedophiles
    • Maybe a voting system?
    • The Tor project feels that any compromise lessens the that’s so important for people in embattled or countries (Worded that poorly -Chris)
    • No metrics on the amount of pedophilia that actually happens Tor – probably a lot
    • Sexually abused victims of trafficking grow up damanged unable to do anything else
    • Consumers of this type of porn were often themselves victims sexual abuse
    • Structural dissonance which exists to create this problem society needs to be addressed
    • Google puts the number to the anti-trafficking hotline at top of any trafficking search results
    • Darren (Derek?) Hayes – redirect to trafficking resources when viewing advertisements for victims trafficking
  • Why did you choose Python as opposed to any other tool for your search engine?
    • Needed solutions quickly with the ability to evolve as needed
    • Able to rapidly develop and incorporate new features rapidly
    • Easy to scale as needed
    • Flask is easier to prototype and iterate with
    • Python data science tools make the analysis easy
    • Able to finish a 2 year C++ project in 3 weeks using Python
    • Doing data science in Ruby is challenging
    • Pandas Dataframe galvanized the creation of a lot of other useful tools
    • Vincent – write Python which compiles to D3
  • Can you provide a high level description of the technical details the search engine that you created, and what it’s like to with Tor through Python?
    • Directed search engine
    • “It would be like if you went to Google but everything watched was Porn which you were uncomfortabl seeing and you sad”
    • Get most case information through regular old detective work
    • Person arrested / in holding yields phone number, other attributes that can feed the search engine
    • Google can’t scrape the deep web
    • Memex tool indexes the deep web – Eric’s search engine uses that
    • Eric does design work for the Memex project
    • Developed by the amazing Chris White
    • Eric’s search engine uses the Tor driver in Selenium to .onion sites
  • What are some of the technical and legal challenges that you experienced in the course of your work?
    • Most of the technical challenges are around automated processing
    • Legal structure provides some limits on what can be worked on
  • Does your search engine try to infer who might be engaged in work voluntarily as opposed to those being forced into it their will?
    • No, because they get all their case referrals from detective work
    • You have to have been hospitalized or in some other way come the attention of the authorities for being deprived of rights
    • Trafficking looks very different in different cultures
    • Global similarities
    • Afraid to say why if hurt
    • Forced into having sex against your will
    • Clear patterns of indication
    • Urban versus Suburban versus Rural
    • Fracking towns
    • Demographics are very different – mostly men very women, LOTS of ads for sex workers
    • Only helping people that want to be helped
  • What was the most surprising fact you uncovered as part of research?
    • Imagery of exploited children is so depressing and sad
  • Without revealing anything you shouldn’t, are you aware of being set free as a result of your work?
    • “Not my work, our work”
    • Not an individual effort
    • lawyers, analysts, larger DAs office
  • Given the complicated socio-economic aspects of human and prosecution of those who are responsible, can you discuss of the moral and ethical considerations that you have confronted with while building these tools?
    • Privacy is the biggest concern
    • Open source book to teach colleagues at the DA’s office how program to in Python
    • Sometimes Eric works at Civic Hall
  • Are there any projects out there that you consider similar to you are working on?
  • What would it take for other municipalities and law agencies to get started with using your tools?
  • How can our listeners get involved and help you with this Chris
    • Tweet at @EricSchles or E-mail Eric
    • Volunteer for any of the non profit anti-trafficking groups
  • Message to the community: There is a world of good waiting to happen

Picks

Keep in Touch

More From Eric

  • He presented at PyGotham 2014
  • He also talked at the Open Data Science Conference 2015 Boston

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Naomi Ceder, Lynn Root and Tracy Osborn on Diversity in the Python Community - Episode 11

Listen to past episodes, read about the show and check out our donations section at podcastinit.com

Brief Introduction

  • Date of recording – Jun-10th, 2015
  • Hosts Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!
  • Overview – Interview with Tracy Osborn, Naomi Ceder, Lynn Root

Interview with Prominent PyLadies

  • Introductions
    • Tracy Osborn
    • Naomi Ceder
    • Lynn Root
  • How did you get introduced to Python?
  • In what ways do you think the Python community has succeeded in making itself more friendly and welcoming to women and other under represented minorities, and where could it do better?
    • Python community leadership takes a positive stance on diversity
    • Codes of conduct are taken very seriously
    • Financial diversity needs more focus
  • What can you tell us about PyLadies and DJango Girls?
    • PyLadies
      • started in a coffee shop in LA
      • pip install PyLadies
      • Over 70 locations on almost every continent – half on meetup.com
  • What are some of the challenges you still face in being a part of the Python community, and how can our listeners help?
    • Don’t be disparaging about women-focused events
  • I had to read up to page 17 of the top authors list on PyPi to find a woman. Can you provide some insight into what may be contributing to this state of affairs and how we can help to improve it?
    • pypi is confusing and intimidating
    • Process and tools are tough to use
    • Maybe Pyladies should host a “make your own package” night
    • Mentorship and easy HOWTOs are needed
  • You have all gained some notoriety in the Python community through work that you have done. Do you feel that you were faced with greater adversity than your peers in the course of your careers?
    • Startup community more hostile than Python community
  • We are talking to each of you because of your involvement in the Python community. Have you worked with and been involved in other language communities? If so, can you provide some comparisons between that and Python in how they manage the subject of diversity, gender and otherwise?
    • Design community – lots of conferences with “all dude” conference speaker line up
    • Startups very focused on males for employees and customers
  • What effect do you think job descriptions play in excluding women and other minorities from roles in development positions? (In reference to https://blog.safaribooksonline.com/2015/06/08/on-recruiting-inclusiveness-and-crafting-better-job-descriptions/)
    • Discourage more appropriate term than exclude
    • Women less likely to apply for roles that they are not completely qualified for
    • Spotify experimenting with blind resume review and cross-checking of job descriptions
      • Result is more women applying and having better results
  • For any women and young girls who may be considering a career in technology, do you have any words of advice?
    • Go for it, but be aware that it’s hard
  • Do you have any advice for the men in the Python community and technology as a whole?
    • Actually listen when somebody tells you that it’s not the same for them (race, economics, gender)
    • Have some compassion and empathy
    • Men should educate themselves
    • Old habits die hard but getting over them is important
  • Is there anything we haven’t discussed that any of you would like to bring up?

    Picks

  • Tobias
  • Chris
  • Naomi Ceder
  • Lynn Root
  • Tracy Osborn
    • EasyPost – Simplifies generating shipping labels for USPS

      Keep in Touch

  • Naomi Ceder
  • Lynn Root
  • Tracy Osborn

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Brian Granger and Fernando Perez of the IPython Project - Episode 10

You can find past episodes and other information about the show at podcastinit.com

Brief Introduction

  • Date of recording – June 3rd, 2015
  • Hosts – Tobias Macey and Chris Patti
  • Overview – Interview with Fernando Perez and Brian Granger, core developers of IPython/Project Jupyter
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!

Interview with Brian Granger and Fernando Perez

Picks

Keep in Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango
Orchestra

/ CC BY-SA

David Baumgold on Flask-Dance, WebhookDB and Open EdX - Episode 9

You can find out more about us and view previous episodes at podcastinit.com.

Brief Introduction

Interview with David Baumgold

  • Introduction
  • How did you get introduced to Python?
  • What problem does Flask-Dance solve that wasn’t covered by other libraries?
  • What were some of the technical issues that you encountered while building Flask-Dance?
  • What are some of the design considerations that you had when building Flask-Dance?
  • You also built webhookdb for replicating GitHub’s information to be queryable. What are some use cases for which you would want to do that?
  • What is Open EdX and what is its intended audience?
  • What are some of the challenges implementing a system like Open EdX, and what can Python developers learn from the implementation of the project?

Picks

Keep in touch

Mark Baggett on Python for InfoSec - Episode 8

Read all of our show notes and find more information about us at Beautiful Soup

Brief Introduction

  • Date of recording – May 28th, 2015
  • Hosts – Tobias Macey and Chris Patti
  • Overview – Interview with Mark Bagett
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!

Interview with Mark Bagett

  • Introductions
  • How were you first introduced to Python? – Chris
    • Started using it for automating tasks while working as a sysadmin
    • Found code that launched an attack on FTP server – in Python
  • What are some of the tasks in your job that you use Python for? -Tobias
    • Trusted command & control backdoor for Windows
      • Mostly not used by malware authors – thus far (at least Mark hasn’t seen it used that way)
      • Flame virus – 5MB payload – incredibly advanced
        • Lua interpreter bundled along with the scripts
      • Vale framework – Python framework that takes payloads out of penetration testing executables
  • What is it about Python that makes it useful for penetration testing and other information security tasks?
    • Same thing that makes it useful for anything else
    • mpacket from core security
  • What are some of the more useful Python penetration testing tools?
  • We’ve noticed that a lot of the literature around information security and penetration testing focuses on targeting Windows. Can you enlighten us as to why that is?
    • Windows event tracing
      • logman
      • event trace providers – implement packet sniffing (Can turn every browser into a key logger)
    • Primary attack surface – Where most attacks are targeted
    • Fewer purely Linux systems
      • Very few ports open – maybe 80, 22
      • Very likely no user just sitting there waiting to run an executable you send
    • More freedom on Linux – less formalized patching process, more variable tools = more exploits
    • Will write code to only use built in modules for Python that will run in customer target environments
  • What are some of the legal considerations that you have to deal with on a regular basis as a penetration tester?
  • There have recently been a number of attacks based on hijacking the TCP/IP stack. Is Python being used for any of these exploits or tools to defend against them?
    • Data analytics
    • Detect repeated sequence numbers – Man in the Middle Attack
      • As simple as 5 lines of Python code
      • import scapy, start sniffing packets, pull together all packets – make list of associated packets
      • Can pull together all packets inside of stream
      • Time spefic source communicates with specific destination
      • Bro – intrusion detection suite
        • Built into Security Onion – Doug Berks
        • FLOSS Weekly episode 296 with Bro developers
  • What are some activities that you do on a regular basis for which you would turn to another language or toolchain, rather than using Python?
    • Powershell – The Python of windows
      • Whitelisted and ubiquitous
    • Password cracking – compiled language like C or assembly
  • For anyone who is interested in getting involved in the security industry, and penetration testing in particular, what resources or tools would you recommend?
    • Developers make the best InfoSec professionals
      • Lots of jobs and opportunities
    • Developer -> Systems Administration -> Information Security
    • Security conferences – BSides, Defcon, Black Hat
    • Online capture the flag challenges (google it) – good practice for critical thinking and using code for security exercises
    • Get involved in the industry – Meetups, etc.
    • SANS institute course, Python for Penetration Testers, SEC573 by Mark Baggett – sans.org
    • Lots of free online resources
    • Violent Python
    • PicoCTF
    • Counter Hack Challenges

Picks

Keep in Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA