--------------------------------------------------------------------------------
/_posts/2016-02-08-the-big-deal-about-python.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | What's the big deal about Python? Stop by on **Monday, February 8 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today will be an introduction to Python and its possibilities. After, we'll do a meet and greet to see how others use Python in an academic setting, and set up discussion topics for the next few meetings.
11 |
12 | Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
13 |
14 |
--------------------------------------------------------------------------------
/_posts/2016-02-22-jupyter-notebook-and-python-fundamentals.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | Come on **Monday, February 22 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will dive into the Jupyter Notebook and explore some of Python's fundamentals. There will be time for discussion and about other workflows that people use Python. No prior experience necessary!
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 |
--------------------------------------------------------------------------------
/_posts/2016-02-29-to-the-next-level-functions.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | Come on **Monday, February 29 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will go into certain "to the next level" functions and commands in Python that can make your work much more efficient. We will be building on the fundamentals discussion from February 22. There will also be time to discuss and share your own "to the next level" function.
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 |
15 | Today, we finished the [exercises by Software Carpentry](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.ipynb) and talked about some useful tools in Jupyter and Python. Kunal's notebook from today is [linked here](../to-the-next-level-2-29-16.ipynb), and a [pdf version is here](../to-the-next-level-2-29-16.pdf).
16 |
--------------------------------------------------------------------------------
/_posts/2016-03-07-working-with-data-and-plotting.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Visualization
5 | ---
6 |
7 | Come on **Monday, March 7 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will work with the [pandas](http://pandas.pydata.org/pandas-docs/stable/10min.html) library in Python to read external data, conduct analysis, and do some plotting. This is the Excel equivalent in Python --- and you'll be surprised of its possibilities!
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 | ## Meeting notes
15 |
16 | Links from today:
17 |
18 | * Here is the link to Raymond Yee's excellent syllabus using IPython notebooks: https://github.com/rdhyee/working-open-data-2014
19 |
20 | * Gravitational Waves data via Jupyter Notebook: https://losc.ligo.org/s/events/GW150914/GW150914_tutorial.html
21 |
22 | * Python for Social Science online textbook: http://www-rohan.sdsu.edu/~gawron/python_for_ss/course_core/book_draft/index.html
23 |
24 | * Our lessons today: http://marwahaha.github.io/2015-07-09-berkeley/intermediate-python/ (Just sections 1 and 2)
25 |
26 | * Another lesson worth checking out: http://www.datacarpentry.org/python-ecology/01-starting-with-data
27 |
28 | We will have another meeting next week on APIs and Webscraping. And hopefully, we can work on a project together.
29 |
--------------------------------------------------------------------------------
/_posts/2016-03-14-webscraping-and-websites.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | Come on **Monday, March 14 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will explore the possibilities of Python on the web. We will begin by looking at HTML, the layout structure of the web, and use Python to scrape through many websites, looking for useful information. There will also be time for discussion and for groups to try making their own web scrapers in Python.
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 |
--------------------------------------------------------------------------------
/_posts/2016-03-28-python-projects.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Collaborating
5 | ---
6 |
7 | Come on **Monday, March 28 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will discuss the use of Python in a programming project. We will brainstorm some ideas, and also look at open Python projects that other groups are working on. We will also discuss using Git and Github for version control and collaboration. This is the day to attend if you want to build something in a collaborative manner.
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 | ## Notes
15 |
16 | We tried exploring this project today, but I think it was a little out-of-reach: http://pfch.nyc/quipu/
17 |
18 | Next week, we will focus on APIs (via another tutorial from Rochelle Terman's PS239T). The notes for next week are right here:
19 |
20 |
21 | [https://github.com/rochelleterman/PS239T/blob/master/09_APIs/01_lecture-slides.md](https://github.com/rochelleterman/PS239T/blob/master/09_APIs/01_lecture-slides.md)
22 |
23 | [https://github.com/rochelleterman/PS239T/blob/master/09_APIs/03_lecture_code.ipynb](https://github.com/rochelleterman/PS239T/blob/master/09_APIs/03_lecture_code.ipynb)
24 |
25 |
26 | Going forward, we can split into a few groups who want to explore projects that we can write from scratch. (That way, we have a good handle on what's going on). Using an API may help. (Maybe, we can query the NYTimes API for something, as in the tutorial...)
27 |
28 |
29 | Also, if you want more practice in Python, I recommend: http://www.codewars.com/
--------------------------------------------------------------------------------
/_posts/2016-04-04-python-and-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | Come on **Monday, April 4 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will explore the possibilities of Python on the web via APIs. There will also be time for discussion and for exploration via the NYTimes API.
11 |
12 | The notes for this lesson are right here:
13 |
14 | [https://github.com/rochelleterman/PS239T/blob/master/09_APIs/01_lecture-slides.md](https://github.com/rochelleterman/PS239T/blob/master/09_APIs/01_lecture-slides.md)
15 |
16 | [https://github.com/rochelleterman/PS239T/blob/master/09_APIs/03_lecture_code.ipynb](https://github.com/rochelleterman/PS239T/blob/master/09_APIs/03_lecture_code.ipynb)
17 |
18 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
19 |
20 |
21 | ## Notes
22 |
23 | This is the [Jupyter notebook](../03_lecture_code_kunal_040416.ipynb) that I used (kunal). It has the solutions to the challenges, plus a bit more. Check it out! Here's a [PDF version](../03_lecture_code_kunal_040416.pdf), and here's the [output csv file](../test.csv).
24 |
25 |
--------------------------------------------------------------------------------
/_posts/2016-04-11-python-and-nytimes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | Come on **Monday, April 11 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will continue exploring the possibilities of Python on the web via APIs. Please see what we did [last week (especially the lesson notes)](../2016-04-04-python-and-apis). We will try to ask some interesting questions about NYTimes articles, and hopefully produce a plot with some of the visualization tools we checked out earlier in the semester. (Things are starting to come together!)
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/_posts/2016-04-18-python-and-nytimes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | Come on **Monday, April 18 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will continue exploring the possibilities of Python on the web via APIs. This is a follow-up of last week's project with the NYTimes. Please see what we did [two weeks ago (especially the lesson notes)](../2016-04-04-python-and-apis). We will try to ask some interesting questions about NYTimes articles, and hopefully produce a plot with some of the visualization tools we checked out earlier in the semester. (Things are starting to come together!)
11 |
12 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/_posts/2016-04-25-python-and-nytimes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | Come on **Monday, April 25 from 5-6:30pm** in the D-Lab (**356 Barrows**).
8 |
9 | ## Info
10 | Today, we will finish the project with the NYTimes API, culminating in a plot of popularity of different words over the past few years.
11 |
12 | Please see what we did [a few weeks ago (especially the lesson notes)](../2016-04-04-python-and-apis). We will try to ask some interesting questions about NYTimes articles, and hopefully produce a plot with some of the visualization tools we checked out earlier in the semester. (Things are starting to come together!)
13 |
14 | Please do, at minimum, run through the [beginner tutorial](http://try-python.appspot.com) and try to follow the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer). Also, we'd love if you can go through [these exercises](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html). If you get stuck, we can help: [email me here](mailto:marwahaha@berkeley.edu) or stop by the D-Lab in 356 Barrows.
15 |
--------------------------------------------------------------------------------
/_posts/2016-09-12-intro-to-learn-python.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | ## Overview
8 | Today, we will introduce the working group and go over expectations for the semester. Then we will review some basic command line prompts and introduce Python and its possibilities.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1cMe-rSJRHpUDebl_aP78zQUJPL5Xzs0TS0k31gOGWt4/edit?usp=sharing).
11 |
12 | Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
--------------------------------------------------------------------------------
/_posts/2016-09-19-python-basics.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | ## Overview
8 | Today, we will go over some of the basics of the Python language. We will learning about Python syntax, data types, and how to write function definitions.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1miRUsJYo9i2FlbPkyCwUR5pNaARXo8UoGpHEvCNVQ80/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/file/d/0B3D_PdrFcBfRZnlmNUFiY0lKOXM/view?usp=sharing).
11 |
12 | Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
13 |
--------------------------------------------------------------------------------
/_posts/2016-09-26-more-python-basics.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | ## Overview
8 | Today, we will go over more basics of the Python language, with more emphasis on function definitions and other data types.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1undT79Ks0NBN5HW4PJsjYg3RI5yBCxlNp37XPzt1y6o/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/file/d/0B3D_PdrFcBfRcGpybHhVTkRMZFE/view?usp=sharing).
11 |
12 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
13 |
--------------------------------------------------------------------------------
/_posts/2016-10-03-python-practice.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 |
7 | ## Overview
8 | Today, we will be practicing the Python basics learned in previous weeks. We will also cover a few more advanced topics.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1TL7wj3KicMrGO4Eni2V6IJVAd4OPbWlQvl_gRMhY3Zk/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/file/d/0B3D_PdrFcBfRNVFyeTNOMlBKRWs/view?usp=sharing). Solutions for the in-class challenges are now included in the notebook!
11 |
12 | [Here](https://drive.google.com/file/d/0B3D_PdrFcBfRaUVVSk83a19jUjA/view?usp=sharing) are some practice problems to work on before class (totally optional!). Download the notebook of solutions [here](https://drive.google.com/file/d/0B3D_PdrFcBfRMktPSkVHamVQN0U/view?usp=sharing).
13 |
14 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
15 |
--------------------------------------------------------------------------------
/_posts/2016-10-17-intro-to-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | Today, we will begin our project for the semester! We will be learning about APIs and exploring the various CDC databases.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1abAVezGYUYj4MZ_TubGkOKQJ9d6wmiPx9GUkvmaqnuU/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/file/d/0B3D_PdrFcBfRd3JVWC1nS1FfdDQ/view?usp=sharing).
11 |
12 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
13 |
--------------------------------------------------------------------------------
/_posts/2016-10-31-twitter-api-project.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | We will begin our semester project by using the Twitter REST API to gather data about this year's election.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1Dv7La-7HM80TR3s4TuA5EkixubruNEXACX4h0q2-Qn0/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/file/d/0B3D_PdrFcBfRaG5zcXQyYW1QR1k/view?usp=sharing).
11 |
12 | ### Resources from class
13 |
14 | * [Brainstorming doc](https://docs.google.com/document/d/1skNQ2tm3gtNpYfDUYlvgABDAPtYxRWsrudJwTKX09Fg/edit?usp=sharing)
15 | * [538 - Political statistics](http://fivethirtyeight.com/)
16 | * [How to apply for Twitter API key](https://apps.twitter.com/)
17 | * [Twitter advanced search engine](https://twitter.com/search-advanced?lang=en)
18 | * [Tweepy documentation](http://tweepy.readthedocs.io/en/v3.5.0/getting_started.html#api)
19 | * [Twitter API documentation](https://dev.twitter.com/rest/reference)
20 |
21 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
22 |
--------------------------------------------------------------------------------
/_posts/2016-11-07-project-part-2.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | We will continue our semester project gathering data about this year's election via the Twitter API.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1lUvP5eNw_muDYc8CKZWh0K8CCQCKAXpQdd7yC_tFIPw/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/open?id=0B3D_PdrFcBfRQjBfUGZaMFF2Mlk).
11 |
12 | ### Resources from class
13 |
14 | * [Brainstorming doc](https://docs.google.com/document/d/1skNQ2tm3gtNpYfDUYlvgABDAPtYxRWsrudJwTKX09Fg/edit?usp=sharing)
15 | * [538 - Political statistics](http://fivethirtyeight.com/)
16 | * [How to apply for Twitter API key](https://apps.twitter.com/)
17 | * [Twitter advanced search engine](https://twitter.com/search-advanced?lang=en)
18 | * [Tweepy documentation](http://tweepy.readthedocs.io/en/v3.5.0/getting_started.html#api)
19 | * [Twitter API documentation](https://dev.twitter.com/rest/reference)
20 |
21 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
22 |
--------------------------------------------------------------------------------
/_posts/2016-11-14-project-part-3.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | We will continue our semester project gathering data about this year's election via the Twitter API.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1IybgN-K4aevsvtbD7ahT4NIUn4q1PcYGIwK_8RBsbO0/edit?usp=sharing), and the Jupyter Notebook download [here](https://drive.google.com/open?id=0B3D_PdrFcBfRdXU4QUJWUWJKS0U).
11 |
12 | ### Resources from class
13 |
14 | * [Brainstorming doc](https://docs.google.com/document/d/1skNQ2tm3gtNpYfDUYlvgABDAPtYxRWsrudJwTKX09Fg/edit?usp=sharing)
15 | * [538 - Political statistics](http://fivethirtyeight.com/)
16 | * [How to apply for Twitter API key](https://apps.twitter.com/)
17 | * [Twitter advanced search engine](https://twitter.com/search-advanced?lang=en)
18 | * [Tweepy documentation](http://tweepy.readthedocs.io/en/v3.5.0/getting_started.html#api)
19 | * [Twitter API documentation](https://dev.twitter.com/rest/reference)
20 |
21 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
22 |
--------------------------------------------------------------------------------
/_posts/2016-11-21-file-writing.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | Today we will gather data and practice writing it to a file.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1Wca2dMg4ClVtV_hg8z6nOMxmewIoFL_COi8DcY56Xn0/edit?usp=sharing), and the materials download [here](https://drive.google.com/drive/folders/0B3D_PdrFcBfRNHF4THpId29EbTQ?usp=sharing).
11 |
12 | ### Resources from class
13 |
14 | * [Brainstorming doc](https://docs.google.com/document/d/1skNQ2tm3gtNpYfDUYlvgABDAPtYxRWsrudJwTKX09Fg/edit?usp=sharing)
15 | * [538 - Political statistics](http://fivethirtyeight.com/)
16 | * [How to apply for Twitter API key](https://apps.twitter.com/)
17 | * [Twitter advanced search engine](https://twitter.com/search-advanced?lang=en)
18 | * [Tweepy documentation](http://tweepy.readthedocs.io/en/v3.5.0/getting_started.html#api)
19 | * [Twitter API documentation](https://dev.twitter.com/rest/reference)
20 |
21 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
22 |
--------------------------------------------------------------------------------
/_posts/2016-11-28-final-fall-class.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Web
5 | ---
6 |
7 | ## Overview
8 | Today we will practice writing to an independent Python file, and bring together several ideas from the semester into one notebook.
9 |
10 | You can find the slides [here](https://docs.google.com/presentation/d/1AzYRQo1uVeAF-XYPR9t5gkGGu7KWQlme8Vs96kOTYdI/edit?usp=sharing), and the materials download [here](https://drive.google.com/drive/folders/0B3D_PdrFcBfRUE9JOFdUR3N6aVE?usp=sharing).
11 |
12 | ### Resources from class
13 |
14 | * [Brainstorming doc](https://docs.google.com/document/d/1skNQ2tm3gtNpYfDUYlvgABDAPtYxRWsrudJwTKX09Fg/edit?usp=sharing)
15 | * [538 - Political statistics](http://fivethirtyeight.com/)
16 | * [How to apply for Twitter API key](https://apps.twitter.com/)
17 | * [Twitter advanced search engine](https://twitter.com/search-advanced?lang=en)
18 | * [Tweepy documentation](http://tweepy.readthedocs.io/en/v3.5.0/getting_started.html#api)
19 | * [Twitter API documentation](https://dev.twitter.com/rest/reference)
20 |
21 | Will this be your first week in the working group? Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
22 |
--------------------------------------------------------------------------------
/_posts/2017-01-30-first-spring-meeting.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 | ### Info
7 | What's the big deal about Python? Stop by on **Monday, January 30 from 4-5:30pm** in the D-Lab (**356 Barrows**). The first meeting will kick off the working group, with a brief review of Python and an introduction to [Numpy](http://www.numpy.org/). After, we'll do a meet and greet to see how others use Python in an academic setting, and set up discussion topics for the next few meetings.
8 |
9 | ### Materials
10 | The Jupyter notebook can be downloaded [here](https://drive.google.com/open?id=0B3D_PdrFcBfRM2EtcHBOXzA4UVE), and the slides can be found [here](https://drive.google.com/open?id=1cMe-rSJRHpUDebl_aP78zQUJPL5Xzs0TS0k31gOGWt4).
11 |
12 | Be sure to check the [setup instructions](http://python.berkeley.edu/learn/#set-up-your-computer) to get started. If you get stuck, we can help!
13 |
--------------------------------------------------------------------------------
/_posts/2017-02-13-numpy.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 | ### Info
7 | Today we will be learning how to use the [NumPy](http://www.numpy.org/) library.
8 |
9 | ### Materials
10 | The notebook can be downloaded [here](https://drive.google.com/drive/folders/0B3D_PdrFcBfRZ0ZlOGdQczlRREE?usp=sharing), but be sure to download it right before class to ensure you have the most updated version! We are often working on these up until class begins.
11 |
--------------------------------------------------------------------------------
/_posts/2017-02-27-filewriting.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 | ### Info
7 | Today we will be learning how to write to files in Python, and use the [CSV](https://docs.python.org/3/library/csv.html) library.
8 |
9 | ### Materials
10 | The notebook can be downloaded [here](https://drive.google.com/drive/folders/0B3D_PdrFcBfRbXY3TTJjQVYtQ1U?usp=sharing) and slides can be found [here](https://docs.google.com/presentation/d/1Wca2dMg4ClVtV_hg8z6nOMxmewIoFL_COi8DcY56Xn0/edit?usp=sharing), but be sure to download it right before class to ensure you have the most updated version! We are often working on these up until class begins.
11 |
--------------------------------------------------------------------------------
/_posts/2017-03-20-yelp-api.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 | ### Info
7 | Today we will be learning how to make calls to the [Yelp API](https://www.yelp.com/developers/documentation/v2/overview).
8 |
9 | ### Materials
10 | The notebook can be downloaded [here](https://drive.google.com/drive/folders/0B3D_PdrFcBfRMGtNajV6eXN3TzA?usp=sharing), but be sure to download it right before class to ensure you have the most updated version! We are often working on these up until class begins.
11 |
--------------------------------------------------------------------------------
/_posts/2017-04-24-final-meeting.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | comments: true
4 | categories: Beginner
5 | ---
6 | ### Info
7 | Today we will be learning about the Python library [matplotlib](https://matplotlib.org/).
8 |
9 | ### Materials
10 | The notebook for this week can be found [here](https://drive.google.com/file/d/0B3D_PdrFcBfRdXU4QUJWUWJKS0U/view).
11 |
--------------------------------------------------------------------------------
/_sass/_base.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Reset some basic elements
3 | */
4 | body, h1, h2, h3, h4, h5, h6,
5 | p, blockquote, pre, hr,
6 | dl, dd, ol, ul, figure {
7 | margin: 0;
8 | padding: 0;
9 | }
10 |
11 |
12 |
13 | /**
14 | * Basic styling
15 | */
16 | body {
17 | font-family: $base-font-family;
18 | font-size: $base-font-size;
19 | line-height: $base-line-height;
20 | font-weight: 300;
21 | color: $text-color;
22 | background-color: $background-color;
23 | -webkit-text-size-adjust: 100%;
24 | }
25 |
26 |
27 |
28 | /**
29 | * Set `margin-bottom` to maintain vertical rhythm
30 | */
31 | h1, h2, h3, h4, h5, h6,
32 | p, blockquote, pre,
33 | ul, ol, dl, figure,
34 | %vertical-rhythm {
35 | margin-bottom: $spacing-unit / 2;
36 | }
37 |
38 |
39 |
40 | /**
41 | * Images
42 | */
43 | img {
44 | max-width: 100%;
45 | vertical-align: middle;
46 | }
47 |
48 |
49 |
50 | /**
51 | * Figures
52 | */
53 | figure > img {
54 | display: block;
55 | }
56 |
57 | figcaption {
58 | font-size: $small-font-size;
59 | }
60 |
61 |
62 |
63 | /**
64 | * Lists
65 | */
66 | ul, ol {
67 | margin-left: $spacing-unit;
68 | }
69 |
70 | li {
71 | > ul,
72 | > ol {
73 | margin-bottom: 0;
74 | }
75 | }
76 |
77 |
78 |
79 | /**
80 | * Headings
81 | */
82 | h1, h2, h3, h4, h5, h6 {
83 | font-weight: 300;
84 | }
85 |
86 |
87 |
88 | /**
89 | * Links
90 | */
91 | a {
92 | color: $brand-color;
93 | text-decoration: none;
94 |
95 | &:visited {
96 | color: darken($brand-color, 15%);
97 | }
98 |
99 | &:hover {
100 | color: $text-color;
101 | text-decoration: underline;
102 | }
103 | }
104 |
105 |
106 |
107 | /**
108 | * Blockquotes
109 | */
110 | blockquote {
111 | color: $grey-color;
112 | border-left: 4px solid $grey-color-light;
113 | padding-left: $spacing-unit / 2;
114 | font-size: 18px;
115 | letter-spacing: -1px;
116 | font-style: italic;
117 |
118 | > :last-child {
119 | margin-bottom: 0;
120 | }
121 | }
122 |
123 |
124 |
125 | /**
126 | * Code formatting
127 | */
128 | pre,
129 | code {
130 | font-size: 15px;
131 | border: 1px solid $grey-color-light;
132 | border-radius: 3px;
133 | background-color: #eef;
134 | }
135 |
136 | code {
137 | padding: 1px 5px;
138 | }
139 |
140 | pre {
141 | padding: 8px 12px;
142 | overflow-x: scroll;
143 |
144 | > code {
145 | border: 0;
146 | padding-right: 0;
147 | padding-left: 0;
148 | }
149 | }
150 |
151 |
152 |
153 | /**
154 | * Wrapper
155 | */
156 | .wrapper {
157 | max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
158 | max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
159 | margin-right: auto;
160 | margin-left: auto;
161 | padding-right: $spacing-unit;
162 | padding-left: $spacing-unit;
163 | @extend %clearfix;
164 |
165 | @include media-query($on-laptop) {
166 | max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
167 | max-width: calc(#{$content-width} - (#{$spacing-unit}));
168 | padding-right: $spacing-unit / 2;
169 | padding-left: $spacing-unit / 2;
170 | }
171 | }
172 |
173 |
174 |
175 | /**
176 | * Clearfix
177 | */
178 | %clearfix {
179 |
180 | &:after {
181 | content: "";
182 | display: table;
183 | clear: both;
184 | }
185 | }
186 |
187 |
188 |
189 | /**
190 | * Icons
191 | */
192 | .icon {
193 |
194 | > svg {
195 | display: inline-block;
196 | width: 16px;
197 | height: 16px;
198 | vertical-align: middle;
199 |
200 | path {
201 | fill: $grey-color;
202 | }
203 | }
204 | }
205 |
--------------------------------------------------------------------------------
/_sass/_layout.scss:
--------------------------------------------------------------------------------
1 |
2 | *{
3 | font-family: Consolas,'Microsoft YaHei', sans-serif;
4 | }
5 |
6 | /**
7 | * Site header
8 | */
9 | /*.site-header {
10 | border-top: 5px solid $grey-color-dark;
11 | border-bottom: 1px solid $grey-color-light;
12 | min-height: 56px;
13 |
14 | // Positioning context for the mobile navigation icon
15 | position: relative;
16 | }*/
17 |
18 | .site-title {
19 | font-size: 26px;
20 | line-height: 56px;
21 | letter-spacing: -1px;
22 | margin-bottom: 0;
23 | float: left;
24 |
25 | &,
26 | &:visited {
27 | color: $grey-color-dark;
28 | }
29 | }
30 |
31 | .site-nav {
32 | float: right;
33 | line-height: 56px;
34 |
35 | .menu-icon {
36 | display: none;
37 | }
38 |
39 | .page-link {
40 | color: $text-color;
41 | line-height: $base-line-height;
42 |
43 | // Gaps between nav items, but not on the first one
44 | &:not(:first-child) {
45 | margin-left: 20px;
46 | }
47 | }
48 |
49 | @include media-query($on-palm) {
50 | position: absolute;
51 | top: 9px;
52 | right: 30px;
53 | background-color: $background-color;
54 | border: 1px solid $grey-color-light;
55 | border-radius: 5px;
56 | text-align: right;
57 |
58 | .menu-icon {
59 | display: block;
60 | float: right;
61 | width: 36px;
62 | height: 26px;
63 | line-height: 0;
64 | padding-top: 10px;
65 | text-align: center;
66 |
67 | > svg {
68 | width: 18px;
69 | height: 15px;
70 |
71 | path {
72 | fill: $grey-color-dark;
73 | }
74 | }
75 | }
76 |
77 | .trigger {
78 | clear: both;
79 | display: none;
80 | }
81 |
82 | &:hover .trigger {
83 | display: block;
84 | padding-bottom: 5px;
85 | }
86 |
87 | .page-link {
88 | display: block;
89 | padding: 5px 10px;
90 | }
91 | }
92 | }
93 |
94 |
95 |
96 | /**
97 | * Site footer
98 | */
99 | .site-footer {
100 | border-top: 1px solid $grey-color-light;
101 | padding: $spacing-unit 0;
102 | }
103 |
104 | .footer-heading {
105 | font-size: 18px;
106 | margin-bottom: $spacing-unit / 2;
107 | }
108 |
109 | .contact-list,
110 | .social-media-list {
111 | list-style: none;
112 | margin-left: 0;
113 | }
114 |
115 | .footer-col-wrapper {
116 | font-size: 15px;
117 | color: $grey-color;
118 | margin-left: -$spacing-unit / 2;
119 | @extend %clearfix;
120 | }
121 |
122 | .footer-col {
123 | float: left;
124 | margin-bottom: $spacing-unit / 2;
125 | padding-left: $spacing-unit / 2;
126 | }
127 |
128 | .footer-col-1 {
129 | width: -webkit-calc(35% - (#{$spacing-unit} / 2));
130 | width: calc(35% - (#{$spacing-unit} / 2));
131 | }
132 |
133 | .footer-col-2 {
134 | width: -webkit-calc(20% - (#{$spacing-unit} / 2));
135 | width: calc(20% - (#{$spacing-unit} / 2));
136 | }
137 |
138 | .footer-col-3 {
139 | width: -webkit-calc(45% - (#{$spacing-unit} / 2));
140 | width: calc(45% - (#{$spacing-unit} / 2));
141 | }
142 |
143 | @include media-query($on-laptop) {
144 | .footer-col-1,
145 | .footer-col-2 {
146 | width: -webkit-calc(50% - (#{$spacing-unit} / 2));
147 | width: calc(50% - (#{$spacing-unit} / 2));
148 | }
149 |
150 | .footer-col-3 {
151 | width: -webkit-calc(100% - (#{$spacing-unit} / 2));
152 | width: calc(100% - (#{$spacing-unit} / 2));
153 | }
154 | }
155 |
156 | @include media-query($on-palm) {
157 | .footer-col {
158 | float: none;
159 | width: -webkit-calc(100% - (#{$spacing-unit} / 2));
160 | width: calc(100% - (#{$spacing-unit} / 2));
161 | }
162 | }
163 |
164 |
165 |
166 | /**
167 | * Page content
168 | */
169 | .page-content {
170 | padding: $spacing-unit 0;
171 | }
172 |
173 | .page-heading {
174 | font-size: 20px;
175 | }
176 |
177 | .post-list {
178 | margin-left: 0;
179 | list-style: none;
180 |
181 | > li {
182 | margin-bottom: $spacing-unit;
183 | }
184 | }
185 |
186 | .post-meta {
187 | font-size: $small-font-size;
188 | color: $grey-color;
189 | }
190 |
191 | .post-link {
192 | display: block;
193 | font-size: 24px;
194 | }
195 |
196 |
197 |
198 | /**
199 | * Posts
200 | */
201 | .post-header {
202 | margin-bottom: $spacing-unit;
203 | }
204 |
205 | .post-title {
206 | font-size: 42px;
207 | letter-spacing: -1px;
208 | line-height: 1;
209 |
210 | @include media-query($on-laptop) {
211 | font-size: 36px;
212 | }
213 | }
214 |
215 | .post-content {
216 | margin-bottom: $spacing-unit;
217 |
218 | h2 {
219 | font-size: 32px;
220 |
221 | @include media-query($on-laptop) {
222 | font-size: 28px;
223 | }
224 | }
225 |
226 | h3 {
227 | font-size: 26px;
228 |
229 | @include media-query($on-laptop) {
230 | font-size: 22px;
231 | }
232 | }
233 |
234 | h4 {
235 | font-size: 20px;
236 |
237 | @include media-query($on-laptop) {
238 | font-size: 18px;
239 | }
240 | }
241 | }
242 |
--------------------------------------------------------------------------------
/events/_drafts/template.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Meeting Notes etc. WITHOUT a date (it's added automatically)
4 | author: You
5 | ---
6 | ### Use third level headings
7 |
8 | Titles for posts are demoted to second level in post listings... And posts
9 | shouldn't have too much structure!
10 |
11 | Content!
12 |
--------------------------------------------------------------------------------
/events/_posts/2013-09-16-py4science-resurrection.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Resurrecting py4science at UC Berkeley"
4 | date: 2013-09-16
5 | ---
6 |
7 | We will be having an organizational meeting this Wednesday, September 18th,
8 | 2013 at the [D-lab](http://dlab.berkeley.edu) on the 3rd floor of Barrows Hall.
9 |
10 |
11 | The main purpose of the first meeting is to set up the
12 | structure for the rest of the year.
13 | The goal of py4science is to bring togther people using python for science
14 | to allow for sharing of tips, tricks, and resources.
15 | This is not a meant to be a **training series**, instead we hope to discuss
16 | a wide range of ever changing topics:
17 |
18 | For example:
19 |
20 | * source control
21 | * scipy or numpy advanced nugget
22 | * virtual env
23 | * integrating testing
24 | * package specific nuggets (eg Pandas, NetworkX, Ipython)
25 |
26 | Example Meeting Agenda
27 | ----------------------
28 |
29 | * newbie nuggets: @ 20 minutes on a topic of interest to new coders
30 | * lightning talks: (1-4) advanced topics
31 | * working groups (split or not-split into groups to discuss lightning topics in detail)
32 | * random access: bring your code issues and questions, this is the time we help each other
33 | * core dump: meet for beers to continue conversations
34 |
35 | This first week we need input from you:
36 |
37 | * topics to cover
38 | * what do you think of the meeting layout
39 | * what do you want to see
40 | * how to disseminate information (mailing list, blog, wiki, newsletter)
41 | * engaging the community
42 | * industry night (May?)
43 |
44 |
45 |
--------------------------------------------------------------------------------
/events/_posts/2013-09-18-notes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Meeting Notes 2013-09-18"
4 | date: 2013-09-18
5 | author: Jess Hamrick
6 | ---
7 |
8 | This was the first meeting of py4science, and was primarily
9 | organizational.
10 |
11 | ## Attendance
12 |
13 | 12 attendees, with an experience breakdown of:
14 |
15 | * Experienced: 6
16 | * New: 3
17 | * Intermediate: 3
18 |
19 | People came from a variety of different departments and organizations
20 | as well:
21 |
22 | * Helen Wills
23 | * Redwood Center
24 | * Neuroscience
25 | * Psychology
26 | * Nuclear engineering
27 | * IPython
28 | * Astronomy
29 | * I School
30 |
31 | ## Meeting topics
32 |
33 | ### Newbie nuggets
34 |
35 | * Each meeting will start with approximately 20 minutes for a "newbie
36 | nugget", which is a brief overview of some introductory topic.
37 |
38 | * Newbie nuggets should be written up in IPython notebooks, so they
39 | can be archived and referred to
40 |
41 | * Cindee went through two example nuggets on the glob library and list
42 | comprehensions
43 |
44 | ### Related groups/events
45 |
46 | * Working groups
47 | 1. Python for data analysis on Fridays 12-2pm, in D-Lab (Bob Bell)
48 | 2. Text analysis on Fridays 2-4pm in D-Lab
49 |
50 | * There will probably be more Python Fundamentals courses
51 |
52 | ### Advanced topics for lightning talks
53 |
54 | What do people want to hear about?
55 |
56 | * Test-driven development (resources, getting into the habit
57 | of test-driven development)
58 | * Using virtual environments
59 | * Parallel computing (theano, and just parallelization in general)
60 | * Pandas workflow
61 | * IPython: new and upcoming features, tips and tricks
62 | * How to work on the bleeding edge of an environment
63 | * Maintaining packages
64 | * pytables
65 | * Writing documentation
66 | * Cython
67 | * Python 3
68 | * Development tools: editors, version control, pylint, etc.
69 | * scikits (especially scikit-learn)
70 | * statsmodels
71 | * RPy
72 | * Javascript, D3
73 | * Pyglet
74 | * Starcluster (for managing amazon ec2 clusters)
75 | * networkx
76 | * Package managment (pip, easy_install, anaconda, enthought, wheels,
77 | etc...)
78 | * Panda3D
79 |
80 | ### Publicity
81 |
82 | How do we get the word out about this meeting to people? What is the
83 | best way to have a collaborative sharing environment?
84 |
85 | * py4science mailing list (please forward to other lists, too!)
86 | * google calendar that sits on the website, can be imported (this has
87 | now been created and can be found
88 | [here](https://www.google.com/calendar/embed?src=moeh9ilpdjicogfaav9jtplh28%40group.calendar.google.com&ctz=America/Los_Angeles)
89 | * py4science list name is not on the website, there should be a link
90 | that takes you to the page to add yourself. We should also include
91 | this in the emails.
92 | * py4science twitter feed?
93 | * we should put the exact room number on the invitation emails/website
94 |
95 | ### Misc
96 |
97 | * Open to more people besides Berkeley, e.g. industry
98 | * If we want pizza, we can set up a collection and ask different
99 | people to bring food each meeting. D-Lab will reimburse for small
100 | amounts of food.
101 | * Information about the old py4science can be found
102 | [here](https://github.com/ipython/ipython/wiki/Trash:+Py4science)
103 |
104 | ## Future meetings
105 |
106 | * Meetings are every other week, may change to every week if there's
107 | enough content
108 |
109 | * Next meeting is in two weeks 10/02/2013
110 | * Cindee will do the newbie nugget
111 | * Lightning talks on advanced topics (~20 minutes each)
112 | * Python 3 (Thomas)
113 | * New stuff in IPython (Min)
114 |
115 | * The following meeting: editor extravaganza!
116 |
--------------------------------------------------------------------------------
/events/_posts/2013-09-25-py4data-welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Introducing py4data
4 | tags: py4data
5 | author: Bob Bell
6 | ---
7 |
8 | Some folks have already found out about the new py4data working group, meeting
9 | Fridays at the D-Lab from noon-2pm. And there's apparently some confusion. So,
10 | just to be clear:
11 |
12 | ## All members of the py4science community are welcome!
13 |
14 | And what goes on there? Here are some lightly edited words from the current
15 | organizer of py4data, Bob Bell:
16 |
17 | I hope everyone is well. We had an awesome time last week learning how
18 | the python data analysis package pandas can help us productively work
19 | with data.
20 |
21 | We will be meeting again Friday (9/27/2013), 12-2pm at the D-Lab
22 | (Barrows 3rd floor) to finish working through our sections in Chapter
23 | 2 and give our group presentations.
24 |
25 | If you want to continue with Pandas, we will switch this week from Wes
26 | McKinney's book to these [IPython notebook based resources]
27 | (https://bitbucket.org/hrojas/learn-pandas).
28 |
29 | Some of us might forge ahead into [econometics and monte carlo sampling]
30 | (http://quant-econ.net/).
31 |
32 | As we did last week, towards the end we will discuss some of the specific
33 | topics we want to cover in subsequent meetings, based on the features
34 | we have explored the past three weeks as well as your own projects.
35 |
36 | And, as before, I will be available 15-20 minutes before the working group
37 | session to help anyone with accessing this notebook, getting setup
38 | with wakari.io, etc.
39 |
--------------------------------------------------------------------------------
/events/_posts/2013-09-27-py4text-welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Introducing py4text
4 | tags: py4text
5 | author: Cyrus Dioun
6 | ---
7 | Some folks have already found out about our py4text Working group, meeting
8 | Fridays at the D-Lab from 2-4pm. And there's apparently some confusion. So, just
9 | to be clear:
10 |
11 | ## All members of the Py4Science community are welcome!
12 |
13 | We are currently figuring out the schedule for the working group this semester. Check back soon for an update.
14 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-01-py4data-pandas-and-econ.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Pandas and econometrics at py4data
4 | tags: py4data
5 | author: Dav Clark
6 | ---
7 |
8 | ## Recap
9 |
10 | - We had eight people show up, mostly grad students (less than normal, perhaps
11 | due to a competing job fair).
12 | - This week people mostly worked independently on different projects. In
13 | particular people are starting to work with their own data.
14 | - Almost everyone is finding it useful to use
15 | [pandas](http://pandas.pydata.org) to read in their data sets
16 | and some people are starting to look at doing quantitative economics on their data.
17 | - Py4text is in the process of merging with py4data so that we have more skills
18 | and expertise in the room at once.
19 |
20 | ## Upcoming
21 |
22 | Both organizers and py4data and py4text are entering a busy period of the
23 | semester and we're realizing we have conflicts with other important events on
24 | campus. So:
25 |
26 | 1. Py4text and py4data meetings will merge - we'll just call it py4data in the
27 | future
28 | 2. Py4data is on hold while we try to figure out the best time to accomodate interested members of the py4science community.
29 |
30 | So, if you're interested in hacking on some code with a like-minded Python
31 | community, please join the py4data working group! (details will be forthcoming
32 | here and on the mailing list.) But, **there is no meeting
33 | this Friday, Oct 4 for py4data**. The regular py4science meeting **will** meet
34 | on Wednesday, and will keep meeting on alternating Wednesdays.
35 |
36 | As always, we'll coordinate here on python.berkeley.edu/py4science, and on the
37 | py4science mailing list!
38 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-01-py4science-grab-bag.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: A healthy variety at py4science
4 | date: 2013-10-01
5 | author: Dav Clark
6 | ---
7 | We'll have our first substantive meeting this week on 10/02/2013!
8 |
9 | As per usual, we'll meet from 5-7pm, but *unlike previously* we'll meet in the
10 | large breakout room, 371 Barrows. The door is around the corner from the main
11 | D-Lab entrance.
12 |
13 | Meetings are still every other week, but may change to every week if there's
14 | enough content.
15 |
16 | ## Schedule
17 |
18 | - Cindee will do the newbie nugget
19 | - Lightning talks on advanced topics (~20 minutes each)
20 | - Python 3 (Thomas)
21 | - New stuff in IPython (Min)
22 |
23 | **Next meeting: editor extravaganza!**
24 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-08-py4science-meeting-two.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Meeting Notes from 2013-10-02"
4 | author: Jess Hamrick
5 | ---
6 |
7 | This was the second meeting of py4science!
8 |
9 | ## Attendance
10 |
11 | There were 9 attendees, with an experience breakdown of:
12 |
13 | * Experienced: 7
14 | * Intermediate: 2
15 | * New: 0
16 |
17 | People came from the following departments and organizations:
18 |
19 | * Neuroscience
20 | * IPython
21 | * Psychology
22 | * D-Lab
23 | * Bioengineering
24 | * Vision Science
25 |
26 | ### Working Groups
27 |
28 | Dav talked about the differences between working groups and the py4science meeting, emphasizing that py4science is more "show and tell" while py4text/py4data is more hands-on.
29 |
30 | ## Newbie Nugget
31 |
32 | Cindee presented this week's Newbie Nugget. The topic is about `if __name__ ==
33 | "__main__":`
34 |
35 | [IPython notebook for the Newbie Nugget](assets/newbie_nugget_Oct2_2013.html)
36 |
37 | Min pointed out that you can write files in IPython notebook using the
38 | `%%file` cell magic!
39 |
40 | Jess mentioned that `if __name__ == "__main__"` doesn't work well in emacs and IPython. Apparently python-mode ignores anything in the 'if' statement.
41 |
42 | ## Lightning Talks
43 |
44 | ### What's New in IPython
45 |
46 | Presented by Min
47 |
48 | Awesome stuff: `%matplotlib`, `raw_input`, `nbconvert`, widgets
49 |
50 | [Notebook for New Features in IPython 1.0](https://github.com/minrk/py4science-notebooks/blob/master/What's%20new%20in%201.0.ipynb)
51 |
52 | [Notebook for Upcoming Features in IPython 2.0](https://github.com/minrk/py4science-notebooks/blob/master/Coming%20in%202.0.ipynb)
53 |
54 | ### Python 3
55 |
56 | Presented by Thomas
57 |
58 | Thomas covered a range of topics, including: `print`, iterators, unicode, function annotation for
59 | typechecking and command line argument parsing, yield from and return from generators.
60 |
61 | Useful tip: `python -o` will remove assert statements!
62 |
63 | Update: [Thomas' Slides](https://github.com/dlab-berkeley/python-berkeley/tree/master/python3_overview)
64 |
65 |
66 | ## Next Time: Editors
67 |
68 | Next py4science meeting is in two weeks, on 10/16/2013!
69 |
70 | * Dav will do the newbie nugget
71 | * Overview of different editors (Each person should take about 10 minutes to describe their workflow, what things are most useful, and resources on how to get started using that particular editor).
72 | * Emacs: Jess
73 | * Sublime: Bill
74 | * Vim: Paul
75 | * TextMate: Min
76 | * Gedit: Dav
77 |
78 | This meeting will be good for beginners! Please come join us to learn more.
79 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-16-py4science-editors.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Meeting Notes for 2013-10-16"
4 | author: Cindee Madison
5 | ---
6 |
7 | Last Meeting **Editors**
8 | =======
9 |
10 | 
11 |
12 | Attendance : 9
13 |
14 | * Overview of different editors
15 | * most useful, and resources on how to get started using that particular editor)
16 |
17 | =======
18 |
19 | * Emacs: Jess
20 | * Sublime: Bill
21 | * Vim: Many
22 | * Gedit: Dav
23 |
24 | ### Jess Hamrick started with [Emacs](http://www.gnu.org/software/emacs/)
25 |
26 | * suggested the [homebrew](http://brew.sh/) version os cocoa emacs for MacOSX
27 |
28 | ####The **bad**
29 | * high initial learning curve
30 | * plugins can be buggy
31 | * bad package management
32 | * customization written in [elisp](http://en.wikipedia.org/wiki/Emacs_Lisp)
33 |
34 | ####The **good**
35 | * [emacswiki.org](http://www.emacswiki.org/emacs/?action=browse;oldid=PythonMode;id=PythonProgrammingInEmacs)
36 | * supports many languages (Python, Latex, GIT Markdown)
37 | * Terminal mode
38 | * plugin for ipython notebook
39 | * scratch buffer for prototyping
40 | * [Jedi](http://tkf.github.io/emacs-jedi/) for auto completion
41 | * [nipy tricked out emacs] (http://nipy.sourceforge.net/devel/tools/tricked_out_emacs.html)
42 | * [pycheckers](https://github.com/dholm/flymake-pycheckers) for integrating
43 | * [magit](https://github.com/magit/magit) Git interface
44 |
45 | ***
46 |
47 | ### Dav Clark [Gedit](https://projects.gnome.org/gedit/) via virtualbox
48 |
49 | Used [virtualbox](https://www.virtualbox.org/wiki/Downloads) + [vagrant](http://www.vagrantup.com/)
50 | to run ubuntu and gedit on OSX
51 |
52 | [github resources for vagrant](https://github.com/dlab-berkeley/python-berkeley/tree/master/editor_setup)
53 |
54 | * gedit and related packages need to map to outside folder, but this is easy to set up
55 | * preferences
56 | * set up default preferences by choosing preferences form File menu
57 | * easily choose relevent modules (eg smart spaces)
58 | * great tool for beginners and teaching
59 | * syntax highlighting
60 |
61 | ****
62 |
63 | ### Bill Sprague [Sublime](http://www.sublimetext.com/)
64 |
65 | #### The **bad**
66 | * not opensource need a license ($70)
67 | * though!! public beta for verson 3 license is not required
68 |
69 | #### The **good**
70 | * sublime works on all platforms
71 | * faster and less bloated than Vim
72 | * powerful GUI interface
73 | * multiple ways to edit text
74 | * command pallate is amazing (has fuzzy searching for all commands making it trivial to find command you want)
75 | * good keyboard
76 | shortcuts classic mode with vim keyboard shortcuts, good for transition
77 | * setup files are json script, easy to edit
78 | * many add on packages which are easy to install
79 | * has project mode for searching within projects
80 | * good for multipurpose cleaning of text files
81 |
82 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-18-back-in-action.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Packaging and Meeting Notes
4 | author: Dav Clark
5 | tags: py4data
6 | ---
7 | We've started a new format, where we'll talk about a (hopefully) useful topic
8 | for Python and data science for the first 30-40 minutes. See the end of this
9 | post for a poll for this Friday!
10 |
11 | ## Planning for the Future
12 |
13 | We agreed that we'll invite Ian Greenhouse from Neuroscience to bring his code
14 | to py4data in November. We'll work on developing robust, sharable, well-tested
15 | python code that processes data for pharmacological MRI scans. Even if you're
16 | not a neuroscientist or biologist, this will be a great opportunity to develop
17 | best practices in sotware developmetn, and will include general analysis issues
18 | like spectrum analysis and data management.
19 |
20 | We are tentatively planning to start this project at the py4data meeting on Nov 22, 2013
21 |
22 | ## Making it Easier to Get Started and Learn
23 |
24 | We talked about resources that are missing from [python.berkeley.edu](http://python.berkeley.edu).
25 |
26 | GOAL: go to [python.berkeley.edu](http://python.berkeley.edu) when confused about something. It's a work in progress, mostly useful for folks getting started (on Python or a particular topic). Following are some resources we'd like to integrate:
27 |
28 | - Udacity
29 | - Learn Py the Hard Way
30 | - Point to GitHub "How To"
31 | - Learnds. ?
32 | - Graphing:
33 | - Vincent (for d3) - apparently hard to use for a beginner
34 | - ggplot - a copy of R's ggplot2 (Can use ggplot2 or lattice via rpy2)
35 | - Lecture notes from high-quality intro python courses on campus?Terry Regier
36 | (Cog Sci / Linguistics) python notes?
37 |
38 | ## How do we Install Packages?
39 |
40 | 1. EASY, TRY THESE FIRST:
41 | - Canopy (GUI, cmd line)
42 | - Anaconda (make sure to update conda with `$ conda update conda`)
43 | - For Ubuntu (and other Debian-based systems): [NeuroDebian PPA](http://neuro.debian.net/) - Good even for non-neuro-science
44 | - other PPAs are mostly outdated or TOO up-to-date / broken
45 | - Linux: apt/yum/etc
46 | 2. Use pip
47 | - `$ pip install pandas`
48 | - `$ pip install -U pandas` to upgrade
49 | 3. Download directly from the project page directly
50 | - download bundle OUTSIDE python dirs/folders. We'll call this `pkg-dir`
51 | - `$ cd pkg-dir`
52 | - `$ python setup.py install`
53 |
54 | ## What do we talk about this Friday?
55 |
56 | - Designing experiments in python (eye tracking, etc.)
57 | - Speeding up code (pandas/numpy, cython, array ops)
58 | - start with pandas (over numpy) for social sciences
59 | - Graphing
60 | - Nothing
61 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-25-hacking-away-py4data.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Hacking away at py4data
4 | author: Dav Clark
5 | ---
6 | ## Continuing with didactic
7 |
8 | Dav (that's me) led a brief tour of how easy it is to pull down financial data
9 | from one of the major providers using pandas, and using methods right there on
10 | the DataFrame to plot the results. But, there are pitfalls!
11 |
12 | Find out more in the [py4data directory in the `master` branch](https://github.com/dlab-berkeley/python-berkeley/tree/master/py4data) of our repo (this site is managed in the
13 | [`gh-pages` branch](https://github.com/dlab-berkeley/python-berkeley/tree/gh-pages)).
14 |
15 | ## Settling into a reasonable pace
16 |
17 | We continue to get newcomers, and some folks have still managed to come to every
18 | meeting. While we're building expertise as a group, you are more than welcome to
19 | drop in. Folks are making progress on everything from managing campus budgets,
20 | to automatically classifying power plants. No challenge is turned away!
21 |
22 | ## Planning ahead for some open, battle tested science!
23 |
24 | In only 4 weeks (Nov 22), we'll be starting on a group project to make some existing
25 | scientific code open, easy-to-use, and well-tested. Tell your colleagues!
26 |
27 | ## Up next
28 |
29 | There wasn't much feedback on what people wanted to see for the first 30 minutes
30 | of the meeting, so I just chose something I thought would be useful. Please
31 | contact me if you're interested in hearing about a particular topic. We can also
32 | pull in expertise from other people!
33 |
--------------------------------------------------------------------------------
/events/_posts/2013-10-30-pandas.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Meeting Notes 2013-10-30"
4 | date: 2013-10-30
5 | author: Jess Hamrick
6 | ---
7 |
8 | Today's topic: data-wrangling with `pandas`!
9 |
10 | ## Attendance
11 |
12 | There were 15 attendees, with people coming from the following departments and organizations:
13 |
14 | - D-Lab
15 | - IPython
16 | - Redwood Center
17 | - Department of City and Regional Planning
18 | - Psychology
19 | - School of Information
20 | - Neuroscience
21 | - Lawrence Berkeley National Laboratory
22 |
23 | ## Agile Data Wrangling with Python
24 |
25 | [IPython notebook](https://github.com/cindeem/ipython-notebooks/tree/master/pandas) presented by Cindee
26 |
27 | ## Next Time: Testing
28 |
29 | Next meeting is in two weeks on 11/13/2013
30 |
31 | **UPDATE:** 11/13 (today's) meeting postponed.
32 |
33 | Unfortunately, some of our core presenters will be unavailable for this evening. As such, we are postponing tonight's py4science testing extravaganza until next week (11/20).
34 |
35 | We'll be covering basic testing strategies and testing frameworks (unittest, py.test, nose, etc.).
36 |
--------------------------------------------------------------------------------
/events/_posts/2013-11-18-get-ready-to-test.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Let's Get Ready to Test!
4 | author: Dav Clark
5 | ---
6 | We'll be having two events this coming week working towards creating
7 | well-tested, ready-to-share scientific code.
8 |
9 | ## Py4science testing extravaganza
10 |
11 | We couldn't do py4science last week, due to some absences and illnesses. So,
12 | we'll pick up this week `Nov 20, 5-7pm` with:
13 |
14 | - When to test (@cindeem will review this)
15 | - [nose](http://nose.readthedocs.org/en/latest/) (@katyhuff can help)
16 | - [py.test](http://pytest.org/latest/contents.html)
17 | - Revisiting [unittest](http://docs.python.org/2/library/unittest.html)
18 |
19 | (Feel free to add your name above if you are planning to help with that section.)
20 |
21 | ## Py4data code porting and testing
22 |
23 | Then, Friday, Nov 22 at noon, we'll start working on porting some
24 | [pharmacological MR analysis code](https://www.github.com/iangreenhouse/MRS) to
25 | battle-tested python. This project will serve as (we hope!) an exemplary model
26 | for folks wanting to create reusable code for science. Should you come even if
27 | you're not a neuroscientist? Definitely! It's about the process here - not the
28 | specific code.
29 |
--------------------------------------------------------------------------------
/events/_posts/2013-11-20-testing-packages.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: 'Testing Packages: pytest and nose'
4 | author: Dav Clark
5 | ---
6 | ## In attendance
7 |
8 | 11 folks signed in, from:
9 |
10 | - Psychology
11 | - Nuclear Engineering
12 | - Vision Science
13 | - Physics
14 | - L&S
15 | - IPython
16 | - and (of course) the D-Lab
17 |
18 | ## Nose
19 |
20 | You can find out more about Nose [here](http://nose.readthedocs.org/en/latest/).
21 |
22 | Katy presented a tutorial on testing from
23 | [Software Carpentry](https://github.com/swcarpentry/bc/tree/gh-pages/lessons/thw-testing).
24 |
25 | ## Pytest
26 |
27 | You can learn more about Pytest [here](http://pytest.org/latest/).
28 |
29 | Thomas presented
30 | [a notebook](https://github.com/dlab-berkeley/python-berkeley/blob/master/testing/Test%20frameworks.ipynb),
31 | which was mostly about pytest.
32 |
33 | ## About this post
34 |
35 | This is the first post where we're using jQuery to automatically format links to
36 | IPython notebooks (code [here](http://python.berkeley.edu/assets/nbview.js)).
37 | For now, we automatically add a link to view in nbviewer following any link
38 | ending in `.ipynb`. It would be pretty nifty if we could use javascript to look
39 | for a notebook server (on `localhost:8888`?), and offer it a notebook somehow.
40 |
--------------------------------------------------------------------------------
/events/_posts/2013-12-11-coastal-ecosystem-simulation.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Coastal Ecosystem Simulation at Py4science
4 | author: Dav Clark
5 | ---
6 | Chris Kees and Aron Ahmadia will be presenting some of their work.
7 |
8 | Chris is one of the lead developers of Proteus, a Python-based toolkit for the
9 | solution of partial differential equations with coastal applications. Aron is a
10 | developer of PyClaw, a Python-based toolkit for the solution of wave propagation
11 | problems. from their email:
12 |
13 | > We're mostly interested in meeting the newly-reinvigorated py4science group,
14 | > and sharing a little bit about what we're working on over here at the US Army
15 | > Engineer Research and Development Center in terms of how Python is helping us
16 | > protect our coasts, estuaries, rivers, and levees.
17 |
18 | These meetings are informal but fun. We meet from 5-7pm oon the 3rd floor of
19 | Barrows Hall in the D-lab Convening Room (largish meeting room). And there
20 | usually is pizza.
21 |
22 | UPDATE: We saw presentations on [PyClaw](https://github.com/clawpack/clawpack/)
23 | and a way to install such gnarly code with
24 | [HashDist](http://hashdist.readthedocs.org/en/latest/)/[HashStack](https://github.com/hashdist/hashstack)! **Even on Windows** (and equally gnarly supercomputing clusters)!
25 |
--------------------------------------------------------------------------------
/events/_posts/2014-01-24-python-workers-party-rally.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: The Python Workers' Party Inaugural Rally!
4 | author: Dav Clark
5 | ---
6 | 
7 |
8 | ### Executive Summary
9 |
10 | The Python Workers' Party will have it's first planning meeting this Friday at
11 | noon. We'll figure out our plan for the semster. Please come even if you're just
12 | getting started! Afterwards, around 1pm, Dav (and perhaps others) will be available for
13 | consulting.
14 |
15 | ### A Little History
16 |
17 | Last semester, we had *two* different kinds of meeting for the Python community on
18 | campus, with the following confusing names:
19 |
20 | 1. **py4science** has been a continuation of the 6-ish year old user group meeting
21 | started by the IPython crew & friends.
22 | 2. After the summer 2013 FUNdamentals class in the D-Lab, students created
23 | **py4data**, where people show up with their own projects, or work on learning
24 | projects together. A wide range of expertise is often available for
25 | assistance in the room.
26 |
27 | We're doing a complete rebrand this semester, announcing the Python Workers'
28 | Party!
29 |
30 | Note that, much like "py4data," we don't imply that you need to be a "scientist"
31 | or even be doing "science" to attend. Digital humanists, open gov types, and
32 | multi-media artists are welcome!
33 |
34 | ### The Agenda
35 |
36 | 1. Do we continue with two separate meetings this semster?
37 | 2. When will our meetings be?
38 | 3. Are there any particular topics / guests we'd like to see?
39 |
40 | **Revolutionary attire is encouraged.**
41 |
--------------------------------------------------------------------------------
/events/_posts/2014-01-31-a-new-format.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: A New Format for Python Meetings
4 | author: Dav Clark
5 | ---
6 | ### The Plan
7 |
8 | Going forward, we'll try consolidating to just one meeting format, and do it
9 | each week.
10 |
11 | Fridays 4-6pm
12 | D-Lab "Convening Room" (the classroom in our main space)
13 | First meeting: Friday 31st January 2014
14 |
15 | We hope this time will attract both people who're too busy during the main
16 | working day, and people who need to get home soon after work. Come and work on
17 | your own projects, or talk to other people about your shared interests. We made
18 | a map of topics people at the organisational meeting last week work on:
19 |
20 | 
21 |
22 | There will be [lightning talks](http://en.wikipedia.org/wiki/Lightning_talk)
23 | at about 4.30pm on using Python in teaching and automated grading. If you know
24 | of projects or ideas about that, let us know at the meeting.
25 |
26 | ### Update: What Happened?
27 |
28 | 17 people present with optional affiliations, interests, like:
29 | - ipython, vim, vision science
30 | - python, vim, biostatistics
31 | - IPython, pyzmq, plasma physics
32 | - iSchool, open data, IPython
33 |
34 | Dav mentioned prose.io as a way to edit the GitHub pages (i.e., for this site).
35 | He's also using pytest in his course: e.g.,
36 | https://github.com/dlab-berkeley/python-fundamentals/blob/master/challenges/01-Intro/test_A_print_stuff.py
37 |
38 | he Picked pytest because error messages clearer than alternatives pedagogically:
39 | it might be great to emphasize importance of testing.
40 |
41 |
42 | ### Jarrod about a tutorial for students to setup a github repository
43 | - berkeley-stat133.github.io
44 | - https://education.github.com/
45 | - http://apis.io
46 |
47 |
48 | ### GRADING WITH PYTHON RESOURCES / LINKS
49 |
50 | Harvard cs109 is using IPython notebooks and some kind of grading (http://cs109.org)
51 |
52 | - (runipy) https://github.com/paulgb/runipy run IPython notebooks
53 | - ipnbdoctest script: https://gist.github.com/minrk/2620735
54 | - IPython nbconvert's preprocessor and metadata can be used to re-execute the
55 | notebooks, and generate HTML reports in a single step
56 |
--------------------------------------------------------------------------------
/events/_posts/2014-02-07-tea-party.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: A very Python Tea Party
4 | author: Dav Clark
5 | ---
6 | ### Tea?
7 |
8 | We had tea for our British friend. But, he didn't show up. We managed to get by,
9 | and did a little one-on-one consulting. Then...
10 |
11 | ### Lightning talks
12 |
13 | - Dav demo'd [rpy2](http://rpy.sourceforge.net/rpy2/doc-2.3/html/index.html)
14 | and
15 | [rmagic](http://ipython.org/ipython-doc/dev/config/extensions/rmagic.html) to
16 | send data you've cleaned up in Python to R.
17 | - Min just pushed %interact to master! [Check it out!](Check it out!)
18 | - Paul melted some brains with his ["vimception"
19 | plugin](https://github.com/ivanov/ipython-vimception) to enable
20 | multi-vim-mode in IPython notebook itself and every cell within.
21 |
--------------------------------------------------------------------------------
/events/_posts/2014-02-21-plotting-and-stuff.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Plotting and Stuff
4 | author: You
5 | ---
6 | ### We're going to PLOT!!!!
7 |
8 | There are lots of ways to make your matplotlib experience better (especially
9 | *looking* better):
10 |
11 | - [Seaborn](http://www.stanford.edu/~mwaskom/software/seaborn/)
12 | - [prettyplotlib](http://olgabot.github.io/prettyplotlib/)
13 | - [ggplot](http://blog.yhathq.com/posts/ggplot-for-python.html)
14 | - [brewer2mpl](https://github.com/jiffyclub/brewer2mpl/wiki)
15 | - [mpltools](http://tonysyu.github.io/mpltools/getting_started.html)
16 |
17 | Then, there are numerous approaches using JavaScript (via python):
18 |
19 | - [mplD3](https://github.com/jakevdp/mpld3)
20 | - [Bokeh](http://bokeh.pydata.org/index.html)
21 | - [vincent](https://github.com/wrobstory/vincent)
22 |
23 | And lastly, [plotly](https://plot.ly) doesn't quit fit into the above. It's a
24 | true web API for plotting.
25 |
26 | ### Actual discussion
27 |
28 | Mark talked about [matplotlib](http://matplotlib.org/) basics. The defaults for
29 | bar plots are poor, but you can fix them up. Scatterplots are great.
30 |
31 | [Veusz](http://home.gna.org/veusz/) is a neat package to manually fix up your
32 | plot, but you can save them manually.
33 |
34 | [Bokeh](http://bokeh.pydata.org/index.html) can plot matplotlib objects in
35 | javascript. It also does awesome interactive plots and mapping. It can plot in
36 | the notbook directly, but you need to run a bokeh-server. Jake Vanderplas
37 | (author of mpld3) said [he was excited about
38 | Bokeh](http://jakevdp.github.io/blog/2013/03/23/matplotlib-and-the-future-of-visualization-in-python/)
39 | too.
40 |
41 | [Plotly](https://plot.ly) requires you to be online, but looks nice and is
42 | interactive / easy to share.
43 |
44 | [Vincent](https://github.com/wrobstory/vincent) is an easy way to get from
45 | pandas to D3 (but provides a strong abstraction layer around D3 - Vega).
46 |
47 | If you're interested in digging into javascript,
48 | [dimple.js](http://dimplejs.org/) comes recommended as a well-documented,
49 | lightweight approach that allows full access to D3 underneath. It doesn't do
50 | maps, so if you want that, leaflet and tilemill seem to be the go-to tech
51 | these days, with a lot of investment by the folks at Mapbox. [This
52 | post](https://www.mapbox.com/blog/github-visual-diff/) will probably make you
53 | say "whoa, holy map-diffs, GitHub!"
54 |
--------------------------------------------------------------------------------
/events/_posts/2014-02-28-getting-things-done-with-pandas.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Getting Things Done with Pandas!
4 | author: Dav Clark
5 | ---
6 | ### Pandas? What's that?
7 |
8 | [Pandas](http://pandas.pydata.org) has become a hub of activity for the
9 | development of useful, (relatively) easy tools for doing all kinds of "data
10 | science." This functionality is built around a central DataFrame structure
11 | (familiar to those of you coming from R), and includes support for oft-neglected
12 | stages of science like data cleaning and exploratory plotting.
13 |
14 | ### The plan
15 |
16 | We didn't quite get through all the nice ways to use matplotlib last week, so
17 | we'll be ready to have a quick look at:
18 |
19 | - [Seaborn](http://www.stanford.edu/~mwaskom/software/seaborn/), which makes it
20 | easier to plot using pandas *and* make things look nice.
21 | - [Vectorized string
22 | methods](http://pandas-docs.github.io/pandas-docs-travis/basics.html#vectorized-string-methods)
23 | that make your data-cleaning life easier.
24 | - Dav used stock data using [the pandas io
25 | module](http://pandas.pydata.org/pandas-docs/stable/remote_data.html) for one
26 | example.
27 |
28 | But we always welcome short talks from everyone! Particularly if you are haven't
29 | spoken before!
30 |
31 | If there's interest, after the lightning talks, I (Dav) will lead a group on
32 | fixing a bug in the string methods linked above, and we'll try submitting a pull
33 | request against pandas on github.
34 |
--------------------------------------------------------------------------------
/events/_posts/2014-03-07-kbase-and-india.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Updates from KBase and open Indian computing training
4 | author: Dav Clark
5 | ---
6 | We had some great presentations today! Stephen Chan from LBNL's KBase team, and
7 | Kannan Moudgalya.
8 |
9 | ### KBase
10 |
11 | KBase is a project to adapt the IPython notebook to fascilitate collaboration
12 | between computational and experimental (bench) biologists. But they want to
13 | expand. There is a developer preview at [demo.kbase.us](http://demo.kbase.us),
14 | you can sign up!
15 |
16 | ### Spoken Tutorial
17 |
18 | Spoken Tutorial is a systematic approach to providing materials like Rails
19 | Casts. (Is there something like this in Python? Submit a pull-request!)
20 |
21 | Check out [these statistics](http://spoken-tutorial.org/statistics)!
22 |
23 | This program offers vetted, open, downloadable screencasts in hybrid
24 | English/native language instruction. Materials span open office software to
25 | Scilab and Python.
26 |
27 | ### FOSSEE
28 |
29 | The Indian government has also heavily invested in building out free software
30 | infrastructure for reasearch and education.
31 |
32 | Approximate rationale: “We take a loan from the World Bank, and burn that money
33 | on Matlab®”
34 |
35 | So, there is now a pipeline to create Scilab and Python materials for over 500
36 | textbooks in science and engineering. All of these materials are [available
37 | online](http://fossee.in/).
38 |
39 | It's hard to get students to use FOSS! But one success is when students realize
40 | that Turbo C (you read that correctly) is a barrier to pass a class -- then
41 | they're willing to switch to gcc on linux.
42 |
43 | ### Akash Tablet
44 |
45 | They apparently also make [these tablets](http://aakashlabs.org/), which
46 | aim to be the cheapest linux computers in the world.
47 |
--------------------------------------------------------------------------------
/events/_posts/2014-03-14-MOOCs-and-SciPy.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: MOOCs and SciPy
4 | author: Dav Clark
5 | ---
6 | ### A call for submissions to SciPy 2014
7 |
8 | The deadline for [SciPy 2014](https://conference.scipy.org/scipy2014/)
9 | appproaches! It's a great, growing conference, with an emphasis on the following
10 | topics (espeically the first two this year):
11 |
12 | - **Education**
13 | - **Geospatial data**
14 | - Astronomy and astrophysics
15 | - Bioinformatics
16 | - Geophysics
17 | - Vision, Visualization, and Imaging
18 | - Computational Social Science and Digital Humanities
19 | - Engineering
20 |
21 | There is also a [**Diversity
22 | Goal**](https://conference.scipy.org/scipy2014/diversity/). Anyone up for
23 | organizing something for women, people of color, or other under-represented
24 | groups?
25 |
26 | Abstract submissions are due this Friday, but if that's a deal-breaker, we will
27 | probably be able to accomodate later submissions (feel free to contact me or
28 | Katy Huff about it).
29 |
30 | ### MOOCs this week
31 |
32 | And now, a selfish topic request this week: the D-Lab is looking at becoming
33 | a resource for MOOC (1) data on campus. I'd invite folks who are engaged with
34 | online courseware to talk about what they've been doing. This could include
35 | things that Raymond is doing with the new bCourses system (our campus course
36 | management portal). Or particularly folks who've been working with EdX systems!
37 |
38 | (1) MOOC = “Massive Open Online Course” You've probably heard of some of them,
39 | like Kahn Academy, EdX (& our local BerkeleyX), Codecademy, Coursera, etc.
40 |
41 | ### A place for beginners
42 |
43 | Lastly, please invite folks who are beginners. The idea is for the Python
44 | Workers' Party to support the development of our community! People can treat it
45 | like a "study hall" to follow a MOOC or book and ask for help if they get stuck,
46 | or ask for help with their projects.
47 |
48 | ### What happened
49 |
50 | Raymond talked about his experiences with bCourses (which runs on
51 | [Canvas](https://github.com/instructure/canvas-lms), which is produced by
52 | [Instructure](http://www.instructure.com)). He was initialy motivated to do
53 | automated grading, but it's been harder to do than to just have his TA do it.
54 |
55 | So, he's been working on being able to do something like clickers during his
56 | class, although some of the response features of Canvas are still in beta. I.e.,
57 | students can provide answers to questions during class, and then you can
58 | programmatically access what they respond.
59 |
60 | There's a REST API, and Raymonds working on a library to work with it. Let him
61 | know if you want to join the effort!
62 |
--------------------------------------------------------------------------------
/events/_posts/2014-03-21-teaching-and-intervening.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Teaching and Intervening
4 | author: Dav Clark
5 | ---
6 | ### Teaching
7 |
8 | We just had another bootcamp! I've been thinking about planning for future
9 | curricula in the D-Lab, and would love to chat with interested folks about what
10 | we do next.
11 |
12 | UPDATE: We talked about different approaches we might take:
13 |
14 | 
15 |
16 | William Stein paid us a visit, and mentioned the utility of introducing a
17 | surprising gotcha after each topic.
18 |
19 | You can (unsurprisingly) find some gotchas on [Stack
20 | Overflow](http://stackoverflow.com/questions/530530/python-2-x-gotchas-and-landmines)
21 |
22 | ### Mobile (and other) Interventions
23 |
24 | I'll also be fresh from a meeting about how to do mobile interventions and
25 | surveys, including technologies like Django. If folks wanted to touch base about
26 | that, I'd love to! Look for updates with links after the meeting.
27 |
28 | NOTE: We didn't actually get to this.
29 |
30 | ### Other stuff: William Stein / SAGE Math Cloud
31 |
32 | [William Stein](http://modular.math.washington.edu/) presented [SAGE Math
33 | Cloud](https://cloud.sagemath.com/). It's pretty rad, you can use it for free.
34 | He also still [skates vert](http://imgur.com/gallery/1fykucl).
35 |
36 | ### Fancy photo shoot
37 |
38 | Lastly - Angela from the Berkeley Science Review showed up and took some
39 | pictures of us. She also said she thought William's presentation was pretty
40 | cool. Stay posted for further images.
41 |
42 | ### Spring Break
43 |
44 | PLEASE NOTE - we will be taking a break over spring break. You should too! We'll
45 | meet Friday, March 21, and then resume in April.
46 |
--------------------------------------------------------------------------------
/events/_posts/2014-04-04-zen-party.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: What is the sound of one hand coding?
4 | author: Dav Clark
5 | ---
6 | ### Python Koans
7 |
8 | This Friday, I propose an exploration of ["Koans" for learning
9 | python](https://github.com/gregmalcolm/python_koans) (and potentially other
10 | programming languages / frameworks). It turns out there's a whole internet
11 | subculture dedicated to this "test-driven learning" idea that I've been talking
12 | about with some of you!
13 |
14 | As per usual, [the Hitchiker's Guide to
15 | Python](http://docs.python-guide.org/en/latest) [already knew about
16 | this](http://docs.python-guide.org/en/latest/intro/learning/#python-koans).
17 |
18 | Thanks to @ivanov for finding this, and yes, the Koan idea was started
19 | by a Rubyist...
20 |
21 | The python guide suggests the following links to find more koans [on
22 | GitHub](https://github.com/search?q=koans&ref=cmdform) and [on
23 | BitBucket](https://bitbucket.org/repo/all?name=koans).
24 |
25 | ### UPDATE: How'd it go?
26 |
27 | The Python koans were surprisingly in line with the official python docs,
28 | starting with [section
29 | 3](https://docs.python.org/2.7/tutorial/introduction.html). The Koans really
30 | aren't usable for a beginner without some orientation to these or similar docs
31 | (as is recommended by the above-mentioned [Hitchhiker's
32 | Guide](http://docs.python-guide.org/en/latest/intro/learning/#python-koans).
33 |
34 | The Koans are quite dry, and for a beginning non-programmer, they may wonder why
35 | they spend all that time on the minutiae of string syntax. Jess did some work
36 | making a strings notebook that has the user go through and test whether various
37 | python strings are the same or different (using different syntax to get similar
38 | or identical strings). For example, are the following equivalent?
39 |
40 | ``` python
41 | str1 = "This has two lines?\n"
42 | str2 = r"This has two lines?\n"
43 | str3 = """This has two lines?
44 | """
45 | ```
46 |
47 | If you're unsure, your python interpreter knows! And the above link to section 3
48 | in the tutorial should get you sorted out...
49 |
50 | Also, it turns out that Behavior Driven Development (BDD) as implemented by
51 | RSpec and ["such"](http://nose2.readthedocs.org/en/latest/such_dsl.html) in
52 | nose2 make Jess and Mike cringe. How about you?
53 |
--------------------------------------------------------------------------------
/events/_posts/2014-04-11-hacking-sage.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Doing some Hacking
4 | author: Dav Clark
5 | ---
6 | ### Son and/or Daughter, we need to hack...
7 |
8 | [Some weeks
9 | ago](http://python.berkeley.edu/events/2014/02/28/getting-things-done-with-pandas.html),
10 | Chris Holdgraf and I said we wanted to do some hacking on pandas -- really easy
11 | stuff that will make everyone's life better. But, we didn't get around to it!
12 |
13 | Then, Will Stein came by and told us about this awesome [IPython extension to do
14 | Sage's convenience
15 | pre-parsing](http://git.sagemath.org/sage.git/tree/src/sage/misc/sage_extension.py).
16 | Sure, it's the kind of thing that will make some people cringe, but it goes some
17 | way towards complaints that python makes you type a lot of stuff.
18 |
19 | All we need to do is open a repo with a name (which might [be
20 | hard](http://martinfowler.com/bliki/TwoHardThings.html)!), put that code in
21 | there, et voilà, we've got this crazy new extension for everyone. And we'll need
22 | to factor out the other dependencies from Sage, but how hard can that be?
23 |
24 | ### UPDATES: Total hijack by Thomas
25 |
26 | So, instead of all that, Thomas got us to join in the fun with the first round
27 | of the [Google Code Jam](https://code.google.com/codejam/). It was great fun
28 | (for us anyway), and you can still go back and practice on previous contests
29 | (though it's too late to join this year). There was much whiteboarding and
30 | coding about cookies and minesweeper.
31 |
--------------------------------------------------------------------------------
/events/_posts/2014-04-18-Save-the-planet-with-open-data.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Save the Planet (with open code and data)
4 | author: You
5 | ---
6 | ### BERC Cleanweb Hackathon 2.0
7 |
8 | Local do-gooders are organizing a hackathon *this weekend* to engage some great
9 | coders in coming up with solutions for opening access to utility data, water
10 | conservation, and "devices and prices." And if you don't fit into any of those
11 | categories, you're still eligible for the **grand prize**.
12 |
13 | You can [register here](http://bit.ly/BERCHackRegister). And we can certainly
14 | use more mentors, even if you can only come for the afternoon!
15 |
16 | ### Towards Open Data with Python
17 |
18 | As you know, the "D" in D-Lab stands for "Social Science Data." But we still
19 | have some pretty ad hoc methods for organizing this data. The R folks are [way
20 | ahead of us](http://ropensci.org).
21 |
22 | So, I'd like to have some discussion about best practices for pythonistas to
23 | deal with open data - both in terms of libraries and in terms of archives
24 | (looking towards something like the rOpenSci project linked above). Let's
25 | do this!
26 |
--------------------------------------------------------------------------------
/events/_posts/2014-04-25-Remixing-parties.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Remixing Parties
4 | author: Dav Clark
5 | ---
6 | ### Thanks for your help thinking about data!
7 |
8 | Last week we had a great brainstorming session about open data. The results of
9 | that session made their way into a ["concerns"
10 | file](https://github.com/infoEnergy/data/blob/master/CONCERNS.md). Also, check
11 | out the [winners of the hackathon](http://berkeley.cleanweb.co/winners-2014/) --
12 | you helped them!
13 |
14 | ### Carry on in Dav's absence
15 |
16 | Tomorrow, I will be attending a [workshop on Buddhism and
17 | Science](http://buddhiststudies.berkeley.edu/events/). So, I won't make the
18 | Worker's party. However, the Python Workers' Party is not about *me*, so you are
19 | welcome to come hang out in the D-Lab from 4-6 anyway.
20 |
21 | In particular, there is a fancy Blum center tour around campus that will be
22 | hitting the convening room at 5:25 and 5:45. But, [the invite
23 | list](http://www.eventbrite.com/e/dil-innovation-crawl-tickets-11257757255?aff=es2)
24 | is now closed.
25 |
26 | But, you're special, because you already have a reason to be in that space!
27 | However, we should relocate the hacking out to the public space (the
28 | collaboratory) instead of the classroom ("convening room") that we normally use.
29 |
30 | ### Jobs
31 |
32 | I met a fella looking to hire a python programmer for reciprocity labs.
33 | Reciprocity labs sounds AWESOME. It's like literate computing (think IPython
34 | notebooks) for corporate governance and risk management (i.e., good
35 | citizenship). Worried that companies like Google are spying (or just helping the
36 | NSA spy) on the nation? These are the guys that are engineering solutions that
37 | can help us be sure that DOESN'T happen.
38 |
39 | https://www.reciprocitylabs.com/careers
40 |
41 | Should we have a job board? Or point to one? Let me know or [submit a pull
42 | request](https://github.com/dlab-berkeley/python-berkeley)!
43 |
--------------------------------------------------------------------------------
/events/_posts/2014-04-25-roundup.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: April 25th, 2014 roundup
4 | author: Paul Ivanov
5 | ---
6 | ### While comrade Clark was away...
7 |
8 | We had a great meeting with 11 people attending!
9 |
10 | [Jess Hamrick](http://www.jesshamrick.com/) gave us an awesome overview of what
11 | it was like to attend her first [PyCon ](https://us.pycon.org/2014/). She told
12 | us about the overall format, some of the interesting talks she caught, but most
13 | importantly, how great it was to interact with the larger Python
14 | community! The [videos](http://pyvideo.org/category/50/pycon-us-2014) are
15 | already up. Here's [Asheesh Laroia's entertaining talk about Python
16 | Packaging](http://www.youtube.com/watch?v=eLPiPHr6TVI) which Jess recommended.
17 |
18 | First-time attendee Martin, who is brand new to Python, asked about reading 55
19 | thousand emails and starting to work with them. I ([Paul
20 | Ivanov](http://pirsquared.org/blog)) suggested using the email module Moshe
21 | suggested [OpenRefine.org](http://OpenRefine.org) as an option of munging the
22 | data, too.
23 |
24 | It was also [Matt Rocklin](http://matthewrocklin.com/blog/)'s first time at the
25 | Workers' Party. He gave us a quick spiel about
26 | [PyToolz](https://github.com/pytoolz/toolz) and
27 | [CyToolz](https://github.com/pytoolz/cytoolz), two modules which bring even more
28 | functional programming ideas to Python.
29 |
30 | Antony told us about
31 | [faulthandler](https://docs.python.org/dev/library/faulthandler.html), a Python
32 | 3.3+ module which allows you print the stack trace and more information even if
33 | your process is dying. Unfortunately, it doesn't really work on Windows, which
34 | Antony is forced to use due to proprietary driver software for the microscope he
35 | uses in his research and we discussed a possible workaround.
36 |
37 | Next week, a bunch of us (Min, Thomas, Matt, and Paul) are giving talks at
38 | [PyData Silicon Valley](http://pydata.org/sv2014/schedule). If you haven't
39 | registered, you can use the code CU@PyData to get 20% off of registration.
40 |
--------------------------------------------------------------------------------
/events/_posts/2014-05-02-different-week.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: A Different Week
4 | author: Dav Clark
5 | ---
6 | ### Another week without Dav
7 |
8 | You're ALWAYS welcome in the D-Lab from 4-6pm on a Friday to dig into Python,
9 | and [last week's
10 | event](http://python.berkeley.edu/events/2014/04/25/roundup.html) was certainly
11 | evidence that *I* don't need to be there!
12 |
13 | But many of us will be attending PyData this weekend (and there's certainly
14 | still time to [sign up](http://pydata.org/sv2014/)).
15 |
--------------------------------------------------------------------------------
/events/_posts/2014-05-09-lots-to-do.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Lots to do!
4 | author: Dav Clark
5 | ---
6 | ### Recap of PyData?
7 |
8 | PyData was great. It was a great reminder of how there's all these brilliant
9 | people out there working really hard to provide us with awesome free tools. You
10 | might check out the [schedule](http://pydata.org/sv2014/schedule/) and have a
11 | discussion around some of the more interesting topics.
12 |
13 | ### Help a comrade out?
14 |
15 | The D-Lab's very own Laura Nelson would like some help multiplying large
16 | matrices (on the order of 400k x 20k). I don't know how to do this off the top
17 | of my head, but if you could help her out on-list or at the Party, you may get
18 | [points](http://python.berkeley.edu/points.html).
19 |
20 | ### Neat part-time job
21 |
22 | I connected with the folks from the Art of Problem Solving at PyData. They want
23 | to pay you to give programming feedback to high school kids. [Check them
24 | out](http://www.artofproblemsolving.com/Company/jobs.php) (scroll all the way to
25 | the bottom for the "Graders" section).
26 |
27 | ### Carry on in Dav's absence
28 |
29 | This brings me to my last point -- I will be busy doing something else *AGAIN*.
30 | But I promise, next week, I'll show up and be super helpful and fun. Matthew
31 | Brett and I have been kicking around the idea of having a meeting about
32 | packaging, which for you academics out there could be central to developing your
33 | own *CITED* code projects.
34 |
35 | **Pinkies out!** [...or not](http://cheezburger.com/6171894784).
36 |
--------------------------------------------------------------------------------
/events/_posts/2014-05-16-packaging-discussion.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Packaging, a discussion / diatribe
4 | author: Dav Clark
5 | ---
6 | ### Packaging is great!
7 |
8 | I mean, packaging is *really* great. It means you can just install and run
9 | someone else's code and have good confidence it'll "just work." You can also
10 | share your work with others (or yourself) with a minimum of fuss.
11 |
12 | ### Why is packaging so hard?
13 |
14 | The scientific python community has had a long and difficult path with packaging
15 | -- largely because we build complex codes that use lots of "foreign" languages
16 | like fortran and C.
17 |
18 | Indeed, [this week's SF Python
19 | meetup](http://www.meetup.com/sfpython/events/178647452/) is actually discussing
20 | this very topic. We've got some scouts heading over, and we'll get a report
21 | back.
22 |
23 | ### Pip
24 |
25 | Currently, there are two main solutions. The "standard" system endorsed by the
26 | python packaging team is pip, and pip is [now available by default in python
27 | 3.4](https://docs.python.org/3/whatsnew/3.4.html#whatsnew-pep-453)
28 |
29 | If you want to get the straight dirt from the python packaging team, they try to
30 | keep [this](http://packaging.python.org/en/latest/) up to date.
31 |
32 | And, it turns out that Matthew Brett has graciously built all the scientific
33 | packages you're likely to want as wheels... I'm sure he'll tell us about it.
34 |
35 | ### Conda
36 |
37 | The other solution, conda, is offered by Continuum analytics as part of their
38 | Anaconda distribution. You could install it in other python distributions, but
39 | (for now), it seems that few people do. Why are these guys putting energy into a
40 | separate effort? [Here's what Travis Oliphant (principal author of NumPy) has to
41 | say.](http://technicaldiscovery.blogspot.com/2013/12/why-i-promote-conda.html)
42 |
43 | Want to know more about this "cross-platform homebrew written in Python?" [Docs
44 | are online](http://conda.pydata.org/docs/index.html)
45 |
46 | ### Other packaging projects
47 |
48 | Here's a [video](https://www.youtube.com/watch?v=CefoqK8Qlno) by Roman
49 | Shaposhnik who created the Apache BigTop project for packaging up the Hadoop
50 | ecosystem that may have some interesting parallels. And [the
51 | slides](http://www.slideshare.net/buildacloud/deploying-hadoop-based-bigdata-environments-roman-shaposhnik)
52 | to go with it.
53 |
54 | And for those of you old enough to remember, we've had [a
55 | presentation](/events/2013/12/11/coastal-ecosystem-simulation.html) here at the
56 | Workers' Party on [HashDist](http://hashdist.readthedocs.org/en/latest/) and
57 | friends (which, it turns out, is moving towards supporting conda).
58 |
59 | ### Honorable mention
60 |
61 | Setting up a complete development environment is hard. A team of us here on
62 | campus are working on the Berkeley Common Environment (BCE) to facilitate
63 | teaching and research using a standardized VM. Maybe by Friday, I'll have
64 | cleaned up the documentation at [this link](http://collaboratool.berkeley.edu).
65 |
66 | ### And, I'm back!
67 |
68 | I know I've missed a lot of parties, but I hope you welcome me back. I'm hoping
69 | to pull in some folks from the broader community that I met in my travels... I'm
70 | looking forwards to a great summer of Python!
71 |
72 | ### Updates
73 |
74 | - [Notebook from Matthew](https://github.com/matthew-brett/sketch-books/blob/master/Fun%20with%20wheels.ipynb)
75 | - [Slides from Thomas](http://www.slideshare.net/takluyver/conda-alternative-packaging-for-scientific-applications)
76 |
--------------------------------------------------------------------------------
/events/_posts/2014-05-23-training-the-next-generation.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Training the next generation of Pythonistas!
4 | author: Dav Clark
5 | ---
6 |
7 | This week, I'll get your input and kick the tires on my [Python Intensive
8 | curriculum](https://github.com/dlab-berkeley/python-fundamentals) that [I'll be
9 | teaching next week in the
10 | D-Lab](http://dlab.berkeley.edu/training/programming-fundamentals) (preceded by
11 | a ["what is programming?"](http://dlab.berkeley.edu/training/python-intensive-0)
12 | workshop).
13 |
14 | I'd love to get your input, but *even more* I'd love it if **you can assist
15 | teaching!** I especially need someone for **Tuesday: 10am-noon for programming
16 | FUNdamentals** and **1-4pm for the Python Intensive.** But we can also use folks
17 | Wed-Fri from 1-4pm.
18 |
19 | ### Updating the Site
20 |
21 | Note that I updated [last weeks event](/events/2014/05/16/packaging-discussion.html) with links to the presentations (and the
22 | links to ipynb files are automatically munged w/ nbviewer links via some
23 | [moderately brittle javascript](/assets/nbview.js)).
24 |
25 | **Anyone** can update the site via a pull request on GitHub! You'll get points, and
26 | can compete with some of these [heavy hitters](/points).
27 |
28 | That's right - the Python Workers' Party has it's own digital currency, and you
29 | can even **mine your own points** using pull requests (and *ask* if you don't
30 | know how!). But please use this power responsibly.
31 |
32 | ### Discussion
33 |
34 | We have a *lot* of strong opinions. We had a lively discussion around how using
35 | VMs might save instructional time, but reduce the usage of python in the long
36 | run.
37 |
38 | Teaching unit testing is hard. None of us know how to get people to write or
39 | even run tests without some sort of authority. I've heard tales of such things,
40 | though.
41 |
42 | We're thinking it'd be good to have some motivation. Here are some example
43 | papers and videos:
44 |
45 | - [Code and Data](http://faculty.chicagobooth.edu/jesse.shapiro/research/CodeAndData.pdf)
46 | - ADD YOUR OWN!
47 |
--------------------------------------------------------------------------------
/events/_posts/2014-05-30-new-members.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Welcome the new members!
4 | author: Dav Clark
5 | ---
6 | ### We're finishing up another training
7 |
8 | The demand for Python training keeps going up! We actually had trouble fitting
9 | this training into the D-Lab, and we've got a lot of motivated students (not all
10 | university students, though!). Interested in welcoming the new Pythonistas? Come
11 | to the Python Workers' Party and say hi! Help your colleagues get going on an
12 | exciting new project, or show them what you've been working on.
13 |
14 | If you bring snacks, you **get points**.
15 |
16 | ### Summer plans?
17 |
18 | We'll also discuss plans for the summer, and point out that a sister group, [The
19 | Hacker Within](http://thehackerwithin.github.io/berkeley/), has also been going
20 | strong this semester. Who knew? We should totally collaborate with these folks!
21 |
--------------------------------------------------------------------------------
/events/_posts/2014-06-06-no-meeting.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: No Meeting! But lots of other stuff
4 | author: Dav Clark
5 | ---
6 | ### Go to a concert!
7 |
8 | I will be going to [this
9 | concert](http://www.burningriverbaroque.org/concerts/index.html) on Friday, and
10 | I encourage you to do the same!
11 |
12 | And since the D-Lab is on reduced hours now (M-Th 1-3pm), it seems right to cancel the Workers' Party this week...
13 |
14 | ### But despair not!
15 |
16 | Tomorrow (Wednesday), you can join The Hacker Within at 4pm. It's been pretty
17 | chill since the summer hit, and they like you! And need your help / want to help
18 | you! They have a [webpage on GitHub
19 | pages](http://thehackerwithin.github.io/berkeley/about.html), *just like us*.
20 |
21 | I recommend hatching a plot to overthrow my despotic rule.
22 |
23 | ### And some open science?
24 |
25 | If you fancy an evening out with some transparent and open science types, please
26 | join us here:
27 |
28 | > "Data Science Meets Social Science"
29 | > Thursday, June 5 | 6.00pm - 7.30pm
30 | > David Brower Center
31 | > 2150 Allston Way | Berkeley, CA
32 |
33 | This event *also* has [a
34 | website](http://cega.berkeley.edu/events/data-science-meets-social-science/)
35 | (but not on GitHub).
36 |
--------------------------------------------------------------------------------
/events/_posts/2014-06-17-summer-schedule.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Meetings this Summer
4 | author: Dav Clark
5 | ---
6 | ### For the rest of the Summer
7 |
8 | This summer we'll switch to every other week. In particular, we'll **skip June
9 | 17!**
10 |
11 | But feel free to drop us a line on the mailing list, or come in to the D-Lab!
12 |
--------------------------------------------------------------------------------
/events/_posts/2014-06-27-before-scipy.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Last meeting before SciPy
4 | author: Dav Clark
5 | ---
6 | ### Some of us are going to SciPy
7 |
8 | So, next meeting might be a good time to touch base on what we'll do at SciPy!
9 | In particular, if folks want to do a run-through of what they'll be presenting,
10 | this will be a great time. If you don't know what SciPy is, there's [a
11 | website](https://conference.scipy.org/scipy2014/).
12 |
13 | We'll also have at least one new visitor, so plenty to do! Look forward to
14 | seeing you there!
15 |
16 | For those of you that want it, here's a link to [the current build of
17 | BCE](https://berkeley.box.com/s/ybysi4qcv75vw84tjl5h).
18 |
--------------------------------------------------------------------------------
/events/_posts/2014-07-25-after-scipy.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: First meeting after SciPy 2014
4 | author: Raymond Yee
5 | ---
6 | ### What did we learn from SciPy?
7 |
8 | It'd be great to reflect on what we learned from SciPy this year.
9 |
10 |
--------------------------------------------------------------------------------
/events/_posts/2014-08-08-real-data-science.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Real Data Science!
4 | author: Dav Clark
5 | ---
6 | ### Dealing with sort-of-big data
7 |
8 | Last meeting I (Dav) was talking smack about [Pandas](http://pandas.pydata.org)
9 | while singing the praises of
10 | [Blaze](http://blaze.pydata.org/docs/latest/index.html). Fortunately, the
11 | eminently reasonable Thomas provided counterpoint on the virtues of the
12 | admittedly excellent pandas.
13 |
14 | But all of that is about to get cleared up by one of the current developers of
15 | Blaze:
16 |
17 | > Blaze is a new project that provides a user interface similar to NumPy and
18 | > Pandas but hooks out to a variety of data and computation backends like HDF5,
19 | > SQL, and Spark. By separating the user interface from the computation we
20 | > enable users to easily experiment with different systems based on their needs.
21 | > Blaze is experimental and so input both on new backends and on usability is
22 | > welcome. For a simple usage example see the [README on
23 | > GitHub](https://github.com/ContinuumIO/blaze/blob/master/README.md)
24 |
25 | Also, their logo (for now) appears to be a tesseract, which is [even
26 | cooler](http://en.wikipedia.org/wiki/A_Wrinkle_in_Time) than the mathematicians
27 | would lead you to believe. Perhaps the same is true of Blaze?
28 |
29 | ### Also, devops
30 |
31 | We've just minted version 0.1 of [BCE](http://collaboratool.berkeley.edu) (which
32 | might stand for the "Berkeley Common Environment"). As is often the case, you
33 | fine people are amongst the first to know! The goal is to provide a standard
34 | "data science" VM for campus, serving both as a standardized learning
35 | environment, and also a standard reference environment where researchers can
36 | ensure their instructions work in *at least* one place!
37 |
38 | Since I've been busy pulling down packages, Aaron from Berkeley Research
39 | Computing (BRC) offered to explain to me (in front of all of you) how he uses a
40 | caching proxy server to speed up repetitive installs, including his efforts to
41 | make this server highly portable with [Docker](http://docker.io). You may not
42 | have heard of Docker, but trust me, they're six ways to crazy about it in the
43 | Valley. Er, South Bay.
44 |
45 | ### Help us teach!
46 |
47 | We're organizing the next D-Lab training [here on this very
48 | website](trainings/2014-08-berkeley-dlab.html)! There, you'll see that the
49 | inimitable Matt Davis has already submitted a [pull
50 | request](https://github.com/dlab-berkeley/python-berkeley/pull/27) to indicate
51 | his availability. Who will be next? How many [points](/points.html) will they
52 | get?
53 |
54 | Only time will tell. (Your questions will be answered on Friday, or just shoot
55 | me an email.)
56 |
--------------------------------------------------------------------------------
/events/_posts/2014-08-22-install-party.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Installation party!
4 | author: Dav Clark
5 | ---
6 | ### Welcome the new Pythonistas
7 |
8 | We've got a group of new Python programmers who've been working hard all week.
9 | Please show up, share your knowledge, and help them orient on the path that
10 | lets them dig into their research!
11 |
12 | Perhaps now is also a good time to have a look at our own [learning
13 | resources](learning_resources.html) and add your wisdom there as well?
14 |
15 | ### Coming up: Xray
16 |
17 | Coming up in two weeks, we'll continue with our exploration of high performance
18 | numberical data structures with a presentation on [Xray](http://xray.readthedocs.org/).
19 |
20 | And just in case I've deprived you of some of the serendipitous fun you might
21 | have found if you googled "python xray", check out [these
22 | pythons](https://www.google.com/search?q=python+xray&tbm=isch)!
23 |
--------------------------------------------------------------------------------
/events/_posts/2014-09-05-Xray.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Xray!
4 | author: Dav Clark
5 | ---
6 | ### Efficient multidimensional arrays?
7 |
8 | This week, we'll continue with our exploration of high performance
9 | numberical data structures with a presentation on [Xray](http://xray.readthedocs.org/).
10 |
11 | And just in case you didn't check it out last week, I promise [these python xray
12 | images](https://www.google.com/search?q=python+xray&tbm=isch) are worth a click!
13 |
14 | ### Other (free) stuff up the hill
15 |
16 | Lawrence Berkeley Labs has published the [near-final agenda for
17 | LabTech](http://go.lbl.gov/labtech) and there's still time to register whether
18 | you want to attend just some or all of the day's activities on Sept 10th.
19 |
20 | Highlights include morning mini-classes, including 3 one hour sessions on
21 | getting the most out of Python in scientific computing, a 3 hour Arduino basics
22 | class, and, new this year, Intro and Advanced LabVIEW.
23 |
24 | The (free) Lunch and Keynote starts at noon, with an overview of what's new (and
25 | old!) from IT this year.
26 |
--------------------------------------------------------------------------------
/events/_posts/2014-09-19-new-structure.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: New Meeting Structure?
4 | author: Dav Clark
5 | ---
6 | ### Two kinds of meeting
7 |
8 | I'm proposing that we shift to the following format (which is also reflected now
9 | on the D-Lab website):
10 |
11 | **1st Friday of each month:** "New and Exciting" topic. The talks we've had recently
12 | about Blaze and Xray are good examples of that format.
13 |
14 | **3rd Friday of each month:** "Beginners Mind". These weeks, folks are encouraged to
15 | bring their own problems. Presentations should be accessible to folks who are
16 | just getting started, and could focus on issues like project structure, etc.
17 |
18 | Lightning talks are always welcome.
19 |
20 | I'm also proposing that we start "for real" at 4:30. This week, I'm happy to
21 | show up at 4, and anyone else is welcome to do so as well.
22 |
--------------------------------------------------------------------------------
/events/_posts/2014-09-26-commoncrawl-big-data.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Teaching Python for Big Open Data
4 | author: Raymond Yee
5 | ---
6 | This coming **Friday -- 2014.09.26 4:30-5:30pm** (during the off-week for the
7 | Python Worker's Party), Raymond Yee (former lecturer at the [School of
8 | Information](http://ischool.berkeley.edu)), along with Lisa Green and Stephen
9 | Merity (of [CommonCrawl.org](http://commoncrawl.org)) will lead a discussion on
10 | the topic of teaching Python for big data. We (Stephen, Raymond, and Lisa) have
11 | been developing training materials for computing on web crawl data as a vehicle
12 | for teaching both [web science](http://en.wikipedia.org/wiki/Web_science) and
13 | techniques for handling large amounts of data.
14 |
15 | We're actively working on the training materials and would love to get
16 | feedback on our work in progress. Some topics we hope to sketch out this
17 | Friday are:
18 |
19 | * What is a web crawl and what exactly is in the CommonCrawl data sets and how
20 | the data is structured (housed in AWS S3)?
21 | * How Python programmers might be able to process this data with mrjob (Stephen
22 | has already developed some materials on this front:
23 | [cc-mrjob](https://github.com/commoncrawl/cc-mrjob))
24 | * How we might use a combination of Python multiprocessing and/or IPython
25 | Parallel + docker + AWS + the IPython notebook to do some exploratory data
26 | analysis.
27 | * Use [BCE](http://collaboratool.berkeley.edu/) for some computations?
28 | * Figure out how to work in [Apache Spark](https://spark.apache.org/)?
29 |
30 | Everyone is welcome!
31 |
32 | [Google hangout on air](https://www.youtube.com/watch?v=zbZ6WA7cMkM)
33 |
--------------------------------------------------------------------------------
/events/_posts/2014-10-03-blinky-lights.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Blinky Lights
4 | author: Dav Clark
5 | ---
6 | ### Blinky Lights
7 |
8 | Dav is very busy, but is still presenting. It'll be something like
9 | [this](https://learn.adafruit.com/raspberry-pi-spectrum-analyzer-display-on-rgb-led-strip/),
10 | but less musical and more IPython. Except the IPython part isn't written yet.
11 |
--------------------------------------------------------------------------------
/events/_posts/2014-10-17-geocoding.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Getting Started with Geo-coding
4 | author: Dav Clark
5 | ---
6 | ### Geocoding with Python
7 |
8 | Maybe you want to find something. You have an address, but where is that? Sure,
9 | you could use google maps. But what if you wanted to do it with a python script?
10 |
11 | Come for this *Beginner's Mind* session to find out. Or, learn whatever else
12 | you're interested in!
13 |
14 | Google Doc available at [http://tinyurl.com/k5r4ume](http://tinyurl.com/k5r4ume).
15 |
--------------------------------------------------------------------------------
/events/_posts/2014-11-07-reproducible-science-dexy-docker.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Reproducible Science with Dexy and Docker
4 | author: Dav Clark
5 | ---
6 | ### Documenting complex scientific workflows
7 |
8 | @ananelson will give us an overview of using [Dexy](http://dexy.it) with
9 | [Docker](http://docker.io). Ana is the primary author of Dexy, so it doesn't get
10 | any more authoritative than this!
11 |
12 | If there's interest, we may discuss some of the recent moves towards using the
13 | [Berkeley Common Environment](http://collaboratool.berkeley.edu/using-bce.html)
14 | with Docker.
15 |
16 | ### (Updates) Some links and stuff
17 |
18 | We're currently keeping track of links and things on [this etherpad](https://etherpad.mozilla.org/pywork-dexy-docker).
19 |
20 | Note that Dexy has a [great tutorial](http://dexy.it/docs/getting-started.html).
21 |
22 | There is a (currently somewhat out-of-date) [Docker example on
23 | github](https://github.com/dexy/repro-demo).
24 |
25 | Follow [Ana](https://twitter.com/ananelson) and [Dexy](https://twitter.com/dexyit)
26 | on Twitter.
27 |
--------------------------------------------------------------------------------
/events/_posts/2014-11-21-tabular-data-hdf5-or-sql.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Tabular Data Smackdown - HDF5 or SQL?
4 | author: Dav Clark
5 | ---
6 | ### Tabular data?
7 |
8 | Tabular data shows up all the time. You've probably seen it in spreadsheets, but
9 | if you need more speed, data security, or advanced features, you might be
10 | happier using something like HDF5 or SQL.
11 |
12 | ### So, what to use?
13 |
14 | It turns out that different tools are good for different jobs. @katyhuff, the
15 | organizer of [the Berkeley chapter of the Hacker
16 | Within](http://thehackerwithin.github.io/berkeley/) will take us through some
17 | examples of when you might use a relational database (using
18 | [sqlite](https://docs.python.org/3/library/sqlite3.html)) vs. an efficient
19 | tabular storage format (using [pytables](http://www.pytables.org/)).
20 |
21 | If there's time, she'll take us through some examples of using pytables.
22 | Tutorial material is available [here](https://github.com/katyhuff/db-wkshp).
23 |
24 | Bring your questions and data challenges, and let's see if we can solve *your*
25 | problems.
26 |
--------------------------------------------------------------------------------
/events/_posts/2014-12-05-rpy2-and-ropensci.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: R from Python with rpy2 - featuring rOpenSci!
4 | author: Dav Clark
5 | ---
6 | Our last formal meeting of the year!
7 |
8 | ### So you still want to use some R
9 |
10 | Sure, we all love Python, but sometimes we need some fancy stats or viz in R
11 | that will just *get your job done*. No worries,
12 | [rpy2](http://rpy.sourceforge.net/) has your back!
13 |
14 | As a demonstration, we'll show how you can use the awesome open and reproducible
15 | science libraries from the [rOpenSci](http://ropensci.org) project from an
16 | IPython notebook.
17 |
18 | ### Can it possibly be that easy?!?
19 |
20 | Yes! Unless, as per usual, you are on windows. If you're interested, I'll talk
21 | a bit about challenges that remain and what you might do to help.
22 |
23 | ### Fancy teaching Python in the D-Lab Jan 12-16?
24 |
25 | It's a great experience, and we'll even pay you (a bit)! Please register your
26 | interest at [this GitHub
27 | issue](https://github.com/dlab-berkeley/python-berkeley/issues/37) if you're
28 | interested!
29 |
30 | ### The Code
31 |
32 | Get it [here](https://github.com/davclark/rpy2-notebooks).
33 |
--------------------------------------------------------------------------------
/events/archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | header : Post Archive
4 | group: navigation
5 | ---
6 |
7 |
8 | {% assign posts_collate = site.posts %}
9 | {% include JB/posts_collate %}
10 |
--------------------------------------------------------------------------------
/events/assets/2014-01-24-PWP-rally-topics.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/events/assets/2014-01-24-PWP-rally-topics.jpg
--------------------------------------------------------------------------------
/events/assets/PWP.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/events/assets/PWP.jpg
--------------------------------------------------------------------------------
/events/assets/teaching-whiteboard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/events/assets/teaching-whiteboard.jpg
--------------------------------------------------------------------------------
/events/assets/text_editors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/events/assets/text_editors.png
--------------------------------------------------------------------------------
/events/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
6 | {% for post in site.categories.events %}
7 | {{ DIVIDER }}
8 | *{{ post.date | date_to_long_string}}*
9 |
10 | ## [{{ post.title }}]({{ site.url }}/learnpython{{ post.url }})
11 |
12 | {{ post.content }}
13 |
14 | {% assign DIVIDER = "---" %}
15 | {% endfor %}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/favicon.ico
--------------------------------------------------------------------------------
/feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | ---
4 |
5 |
6 |
7 | {{ site.title | xml_escape }}
8 | {{ site.description | xml_escape }}
9 | {{ site.url }}{{ site.baseurl }}/
10 |
11 | {{ site.time | date_to_rfc822 }}
12 | {{ site.time | date_to_rfc822 }}
13 | Jekyll v{{ jekyll.version }}
14 | {% for post in site.posts limit:10 %}
15 |
16 | {{ post.title | xml_escape }}
17 | {{ post.content | xml_escape }}
18 | {{ post.date | date_to_rfc822 }}
19 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
20 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
21 | {% for tag in post.tags %}
22 | {{ tag | xml_escape }}
23 | {% endfor %}
24 | {% for cat in post.categories %}
25 | {{ cat | xml_escape }}
26 | {% endfor %}
27 |
28 | {% endfor %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: frontpage
3 | title: Home
4 | ---
5 |
6 | ## Python Practice
7 |
8 | Python Practice is a working group at UC Berkeley, sponsored by the D-Lab. We hold informal biweekly meetings about special topics of the [Python programming language](https://python.org/). We focus especially in social science applications, data science, and visualization.
9 |
10 | This group is perfect for those who have some experience with Python, as we do expect some programming foundation. Much of the learning will be done in pairs or as a team. Everyone is welcome to attend any or all meetings throughout the semester.
11 |
12 | **When:** Mondays from 4-5:30, through 4/24.
13 |
14 | **Where:** [D-Lab Collaboratory](http://dlab.berkeley.edu/space), 356 Barrows Hall.
15 |
16 | Please email the [D-Lab front desk](mailto:dlab-frontdesk@berkeley.edu) for more information. You can also [subscribe here](https://groups.google.com/a/lists.berkeley.edu/d/forum/pythonpractice) to our mailing list!
17 |
18 | * Here are [beginner resources](/learn) for new learners!
19 | * Here are the links to our [past meetings](/past). These past meeting posts have our class resources for each week, in the form of Jupyter notebooks.
20 | * Here are other resources for [furthering your Python skills](/resources). If another resource was useful, [let us know!](mailto:dlab-frontdesk@berkeley.edu).
21 | * Here are other [UC Berkeley groups & events](/community) that focus on Python.
22 |
23 | The [D-Lab](http://dlab.berkeley.edu) also offers many other free computing resources for academics, including workshops and 1-on-1 consulting.
24 |
--------------------------------------------------------------------------------
/notebooks/Yelp_API_2.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {
7 | "collapsed": true
8 | },
9 | "outputs": [],
10 | "source": [
11 | "state_capitals={\"Washington\":\"Olympia\",\"Oregon\":\"Salem\",\\\n",
12 | " \"California\":\"Sacramento\",\"Ohio\":\"Columbus\",\\\n",
13 | " \"Nebraska\":\"Lincoln\",\"Colorado\":\"Denver\",\\\n",
14 | " \"Michigan\":\"Lansing\",\"Massachusetts\":\"Boston\",\\\n",
15 | " \"Florida\":\"Tallahassee\",\"Texas\":\"Austin\",\\\n",
16 | " \"Oklahoma\":\"Oklahoma City\",\"Hawaii\":\"Honolulu\",\\\n",
17 | " \"Alaska\":\"Juneau\",\"Utah\":\"Salt Lake City\",\\\n",
18 | " \"New Mexico\":\"Santa Fe\",\"North Dakota\":\"Bismarck\",\\\n",
19 | " \"South Dakota\":\"Pierre\",\"West Virginia\":\"Charleston\",\\\n",
20 | " \"Virginia\":\"Richmond\",\"New Jersey\":\"Trenton\",\\\n",
21 | " \"Minnesota\":\"Saint Paul\",\"Illinois\":\"Springfield\",\\\n",
22 | " \"Indiana\":\"Indianapolis\",\"Kentucky\":\"Frankfort\",\\\n",
23 | " \"Tennessee\":\"Nashville\",\"Georgia\":\"Atlanta\",\\\n",
24 | " \"Alabama\":\"Montgomery\",\"Mississippi\":\"Jackson\",\\\n",
25 | " \"North Carolina\":\"Raleigh\",\"South Carolina\":\"Columbia\",\\\n",
26 | " \"Maine\":\"Augusta\",\"Vermont\":\"Montpelier\",\\\n",
27 | " \"New Hampshire\":\"Concord\",\"Connecticut\":\"Hartford\",\\\n",
28 | " \"Rhode Island\":\"Providence\",\"Wyoming\":\"Cheyenne\",\\\n",
29 | " \"Montana\":\"Helena\",\"Kansas\":\"Topeka\",\\\n",
30 | " \"Iowa\":\"Des Moines\",\"Pennsylvania\":\"Harrisburg\",\\\n",
31 | " \"Maryland\":\"Annapolis\",\"Missouri\":\"Jefferson City\",\\\n",
32 | " \"Arizona\":\"Phoenix\",\"Nevada\":\"Carson City\",\\\n",
33 | " \"New York\":\"Albany\",\"Wisconsin\":\"Madison\",\\\n",
34 | " \"Delaware\":\"Dover\",\"Idaho\":\"Boise\",\\\n",
35 | " \"Arkansas\":\"Little Rock\",\"Louisiana\":\"Baton Rouge\"}"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": null,
41 | "metadata": {
42 | "collapsed": true
43 | },
44 | "outputs": [],
45 | "source": []
46 | }
47 | ],
48 | "metadata": {
49 | "kernelspec": {
50 | "display_name": "Python 3",
51 | "language": "python",
52 | "name": "python3"
53 | },
54 | "language_info": {
55 | "codemirror_mode": {
56 | "name": "ipython",
57 | "version": 3
58 | },
59 | "file_extension": ".py",
60 | "mimetype": "text/x-python",
61 | "name": "python",
62 | "nbconvert_exporter": "python",
63 | "pygments_lexer": "ipython3",
64 | "version": "3.4.5"
65 | }
66 | },
67 | "nbformat": 4,
68 | "nbformat_minor": 0
69 | }
70 |
--------------------------------------------------------------------------------
/notebooks/capitals2.csv:
--------------------------------------------------------------------------------
1 | Country,Capital,Latitude,Longitude
2 | Afghanistan,Kabul,34¡28'N,69¡11'E
3 | Albania,Tirane,41¡18'N,19¡49'E
4 | Algeria,Algiers,36¡42'N,03¡08'E
5 | American Samoa,Pago Pago,14¡16'S,170¡43'W
6 | Andorra,Andorra la Vella,42¡31'N,01¡32'E
7 | Angola,Luanda,08¡50'S,13¡15'E
8 | Antigua and Barbuda,W. Indies,17¡20'N,61¡48'W
9 | Argentina,Buenos Aires,36¡30'S,60¡00'W
10 | Armenia,Yerevan,40¡10'N,44¡31'E
11 | Aruba,Oranjestad,12¡32'N,70¡02'W
12 | Australia,Canberra,35¡15'S,149¡08'E
13 | Austria,Vienna,48¡12'N,16¡22'E
14 | Azerbaijan,Baku,40¡29'N,49¡56'E
15 | Bahamas,Nassau,25¡05'N,77¡20'W
16 | Bahrain,Manama,26¡10'N,50¡30'E
17 | Bangladesh,Dhaka,23¡43'N,90¡26'E
18 | Barbados,Bridgetown,13¡05'N,59¡30'W
19 | Belarus,Minsk,53¡52'N,27¡30'E
20 | Belgium,Brussels,50¡51'N,04¡21'E
21 | Belize,Belmopan,17¡18'N,88¡30'W
22 | Benin,Porto-Novo (constitutional cotonou) (seat of gvnt),06¡23'N,02¡42'E
23 | Bhutan,Thimphu,27¡31'N,89¡45'E
24 | Bolivia,La Paz (adm.)/sucre (legislative),16¡20'S,68¡10'W
25 | Bosnia and Herzegovina,Sarajevo,43¡52'N,18¡26'E
26 | Botswana,Gaborone,24¡45'S,25¡57'E
27 | Brazil,Brasilia,15¡47'S,47¡55'W
28 | British Virgin Islands,Road Town,18¡27'N,64¡37'W
29 | Brunei Darussalam,Bandar Seri Begawan,04¡52'N,115¡00'E
30 | Bulgaria,Sofia,42¡45'N,23¡20'E
31 | Burkina Faso,Ouagadougou,12¡15'N,01¡30'W
32 | Burundi,Bujumbura,03¡16'S,29¡18'E
33 | Cambodia,Phnom Penh,11¡33'N,104¡55'E
34 | Cameroon,Yaounde,03¡50'N,11¡35'E
35 | Canada,Ottawa,45¡27'N,75¡42'W
36 | Cape Verde,Praia,15¡02'N,23¡34'W
37 | Cayman Islands,George Town,19¡20'N,81¡24'W
38 | Central African Republic,Bangui,04¡23'N,18¡35'E
39 | Chad,N'Djamena,12¡10'N,14¡59'E
40 | Chile,Santiago,33¡24'S,70¡40'W
41 | China,Beijing,39¡55'N,116¡20'E
42 | Colombia,Bogota,04¡34'N,74¡00'W
43 | Comros,Moroni,11¡40'S,43¡16'E
44 | Congo,Brazzaville,04¡09'S,15¡12'E
45 | Costa Rica,San Jose,09¡55'N,84¡02'W
46 | Cote d'Ivoire,Yamoussoukro,06¡49'N,05¡17'W
47 | Croatia,Zagreb,45¡50'N,15¡58'E
48 | Cuba,Havana,23¡08'N,82¡22'W
49 | Cyprus,Nicosia,35¡10'N,33¡25'E
50 | Czech Republic,Prague,50¡05'N,14¡22'E
51 | Democratic People's Republic of,P'yongyang,39¡09'N,125¡30'E
52 | Democratic Republic of the Congo,Kinshasa,04¡20'S,15¡15'E
53 | Denmark,Copenhagen,55¡41'N,12¡34'E
54 | Djibouti,Djibouti,11¡08'N,42¡20'E
55 | Dominica,Roseau,15¡20'N,61¡24'W
56 | Dominica Republic,Santo Domingo,18¡30'N,69¡59'W
57 | East Timor,Dili,08¡29'S,125¡34'E
58 | Ecuador,Quito,00¡15'S,78¡35'W
59 | Egypt,Cairo,30¡01'N,31¡14'E
60 | El Salvador,San Salvador,13¡40'N,89¡10'W
61 | Equatorial Guinea,Malabo,03¡45'N,08¡50'E
62 | Eritrea,Asmara,15¡19'N,38¡55'E
63 | Estonia,Tallinn,59¡22'N,24¡48'E
64 | Ethiopia,Addis Ababa,09¡02'N,38¡42'E
65 | Falkland Islands (Malvinas),Stanley,51¡40'S,59¡51'W
66 | Faroe Islands,Torshavn,62¡05'N,06¡56'W
67 | Fiji,Suva,18¡06'S,178¡30'E
68 | Finland,Helsinki,60¡15'N,25¡03'E
69 | France,Paris,48¡50'N,02¡20'E
70 | French Guiana,Cayenne,05¡05'N,52¡18'W
71 | French Polynesia,Papeete,17¡32'S,149¡34'W
72 | Gabon,Libreville,00¡25'N,09¡26'E
73 | Gambia,Banjul,13¡28'N,16¡40'W
74 | Georgia,T'bilisi,41¡43'N,44¡50'E
75 | Germany,Berlin,52¡30'N,13¡25'E
76 | Ghana,Accra,05¡35'N,00¡06'W
77 | Greece,Athens,37¡58'N,23¡46'E
78 | Greenland,Nuuk,64¡10'N,51¡35'W
79 | Guadeloupe,Basse-Terre,16¡00'N,61¡44'W
80 | Guatemala,Guatemala,14¡40'N,90¡22'W
81 | Guernsey,St. Peter Port,49¡26'N,02¡33'W
82 | Guinea,Conakry,09¡29'N,13¡49'W
83 | Guinea-Bissau,Bissau,11¡45'N,15¡45'W
84 | Guyana,Georgetown,06¡50'N,58¡12'W
85 | Haiti,Port-au-Prince,18¡40'N,72¡20'W
86 | Heard Island and McDonald Islands,,53¡00'S,74¡00'E
87 | Honduras,Tegucigalpa,14¡05'N,87¡14'W
88 | Hungary,Budapest,47¡29'N,19¡05'E
89 | Iceland,Reykjavik,64¡10'N,21¡57'W
90 | India,New Delhi,28¡37'N,77¡13'E
91 | Indonesia,Jakarta,06¡09'S,106¡49'E
92 | Iran (Islamic Republic of),Tehran,35¡44'N,51¡30'E
93 | Iraq,Baghdad,33¡20'N,44¡30'E
94 | Ireland,Dublin,53¡21'N,06¡15'W
95 | Israel,Jerusalem,31¡47'N,35¡12'E
96 | Italy,Rome,41¡54'N,12¡29'E
97 | Jamaica,Kingston,18¡00'N,76¡50'W
98 | Jordan,Amman,31¡57'N,35¡52'E
99 | Kazakhstan,Astana,51¡10'N,71¡30'E
100 | Kenya,Nairobi,01¡17'S,36¡48'E
101 | Kiribati,Tarawa,01¡30'N,173¡00'E
102 | Kuwait,Kuwait,29¡30'N,48¡00'E
103 | Kyrgyzstan,Bishkek,42¡54'N,74¡46'E
104 | Lao People's Democratic Republic,Vientiane,17¡58'N,102¡36'E
105 | Latvia,Riga,56¡53'N,24¡08'E
106 | Lebanon,Beirut,33¡53'N,35¡31'E
107 | Lesotho,Maseru,29¡18'S,27¡30'E
108 | Liberia,Monrovia,06¡18'N,10¡47'W
109 | Libyan Arab Jamahiriya,Tripoli,32¡49'N,13¡07'E
110 | Liechtenstein,Vaduz,47¡08'N,09¡31'E
111 | Lithuania,Vilnius,54¡38'N,25¡19'E
112 | Luxembourg,Luxembourg,49¡37'N,06¡09'E
113 | "Macao, China",Macau,22¡12'N,113¡33'E
114 | Madagascar,Antananarivo,18¡55'S,47¡31'E
115 | Malawi,Lilongwe,14¡00'S,33¡48'E
116 | Malaysia,Kuala Lumpur,03¡09'N,101¡41'E
117 | Maldives,Male,04¡00'N,73¡28'E
118 | Mali,Bamako,12¡34'N,07¡55'W
119 | Malta,Valletta,35¡54'N,14¡31'E
120 | Martinique,Fort-de-France,14¡36'N,61¡02'W
121 | Mauritania,Nouakchott,20¡10'S,57¡30'E
122 | Mayotte,Mamoudzou,12¡48'S,45¡14'E
123 | Mexico,Mexico,19¡20'N,99¡10'W
124 | Micronesia (Federated States of),Palikir,06¡55'N,158¡09'E
125 | "Moldova, Republic of",Chisinau,47¡02'N,28¡50'E
126 | Mozambique,Maputo,25¡58'S,32¡32'E
127 | Myanmar,Yangon,16¡45'N,96¡20'E
128 | Namibia,Windhoek,22¡35'S,17¡04'E
129 | Nepal,Kathmandu,27¡45'N,85¡20'E
130 | Netherlands,Amsterdam/The Hague (seat of Gvnt),52¡23'N,04¡54'E
131 | Netherlands Antilles,Willemstad,12¡05'N,69¡00'W
132 | New Caledonia,Noumea,22¡17'S,166¡30'E
133 | New Zealand,Wellington,41¡19'S,174¡46'E
134 | Nicaragua,Managua,12¡06'N,86¡20'W
135 | Niger,Niamey,13¡27'N,02¡06'E
136 | Nigeria,Abuja,09¡05'N,07¡32'E
137 | Norfolk Island,Kingston,45¡20'S,168¡43'E
138 | Northern Mariana Islands,Saipan,15¡12'N,145¡45'E
139 | Norway,Oslo,59¡55'N,10¡45'E
140 | Oman,Masqat,23¡37'N,58¡36'E
141 | Pakistan,Islamabad,33¡40'N,73¡10'E
142 | Palau,Koror,07¡20'N,134¡28'E
143 | Panama,Panama,09¡00'N,79¡25'W
144 | Papua New Guinea,Port Moresby,09¡24'S,147¡08'E
145 | Paraguay,Asuncion,25¡10'S,57¡30'W
146 | Peru,Lima,12¡00'S,77¡00'W
147 | Philippines,Manila,14¡40'N,121¡03'E
148 | Poland,Warsaw,52¡13'N,21¡00'E
149 | Portugal,Lisbon,38¡42'N,09¡10'W
150 | Puerto Rico,San Juan,18¡28'N,66¡07'W
151 | Qatar,Doha,25¡15'N,51¡35'E
152 | Republic of Korea,Seoul,37¡31'N,126¡58'E
153 | Romania,Bucuresti,44¡27'N,26¡10'E
154 | Russian Federation,Moskva,55¡45'N,37¡35'E
155 | Rawanda,Kigali,01¡59'S,30¡04'E
156 | Saint Kitts and Nevis,Basseterre,17¡17'N,62¡43'W
157 | Saint Lucia,Castries,14¡02'N,60¡58'W
158 | Saint Pierre and Miquelon,Saint-Pierre,46¡46'N,56¡12'W
159 | Saint vincent and the Grenadines,Kingstown,13¡10'N,61¡10'W
160 | Samoa,Apia,13¡50'S,171¡50'W
161 | San Marino,San Marino,43¡55'N,12¡30'E
162 | Sao Tome and Principe,Sao Tome,00¡10'N,06¡39'E
163 | Saudi Arabia,Riyadh,24¡41'N,46¡42'E
164 | Senegal,Dakar,14¡34'N,17¡29'W
165 | Sierra Leone,Freetown,08¡30'N,13¡17'W
166 | Slovakia,Bratislava,48¡10'N,17¡07'E
167 | Slovenia,Ljubljana,46¡04'N,14¡33'E
168 | Solomon Islands,Honiara,09¡27'S,159¡57'E
169 | Somalia,Mogadishu,02¡02'N,45¡25'E
170 | South Africa,Pretoria (adm.) / Cap Town (Legislative) / Bloemfontein (Judicial),25¡44'S,28¡12'E
171 | Spain,Madrid,40¡25'N,03¡45'W
172 | Sudan,Khartoum,15¡31'N,32¡35'E
173 | Suriname,Paramaribo,05¡50'N,55¡10'W
174 | Swaziland,Mbabane (Adm.),26¡18'S,31¡06'E
175 | Sweden,Stockholm,59¡20'N,18¡03'E
176 | Switzerland,Bern,46¡57'N,07¡28'E
177 | Syrian Arab Republic,Damascus,33¡30'N,36¡18'E
178 | Tajikistan,Dushanbe,38¡33'N,68¡48'E
179 | Thailand,Bangkok,13¡45'N,100¡35'E
180 | The Former Yugoslav Republic of Macedonia,Skopje,42¡01'N,21¡26'E
181 | Togo,Lome,06¡09'N,01¡20'E
182 | Tonga,Nuku'alofa,21¡10'S,174¡00'W
183 | Tunisia,Tunis,36¡50'N,10¡11'E
184 | Turkey,Ankara,39¡57'N,32¡54'E
185 | Turkmenistan,Ashgabat,38¡00'N,57¡50'E
186 | Tuvalu,Funafuti,08¡31'S,179¡13'E
187 | Uganda,Kampala,00¡20'N,32¡30'E
188 | Ukraine,Kiev (Rus),50¡30'N,30¡28'E
189 | United Arab Emirates,Abu Dhabi,24¡28'N,54¡22'E
190 | United Kingdom of Great Britain and Northern Ireland,London,51¡36'N,00¡05'W
191 | United Republic of Tanzania,Dodoma,06¡08'S,35¡45'E
192 | United States of America,Washington DC,39¡91'N,77¡02'W
193 | United States of Virgin Islands,Charlotte Amalie,18¡21'N,64¡56'W
194 | Uruguay,Montevideo,34¡50'S,56¡11'W
195 | Uzbekistan,Tashkent,41¡20'N,69¡10'E
196 | Vanuatu,Port-Vila,17¡45'S,168¡18'E
197 | Venezuela,Caracas,10¡30'N,66¡55'W
198 | Viet Nam,Hanoi,21¡05'N,105¡55'E
199 | Yugoslavia,Belgrade,44¡50'N,20¡37'E
200 | Zambia,Lusaka,15¡28'S,28¡16'E
201 | Zimbabwe,Harare,17¡43'S,31¡02'E
202 |
--------------------------------------------------------------------------------
/notebooks/coding_challenges1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Code Challenges"
8 | ]
9 | },
10 | {
11 | "cell_type": "markdown",
12 | "metadata": {},
13 | "source": [
14 | "For those of you trying to improve your skills on the basics, here are some challenges! They increase in difficulty, so please try to do them in order. Many of them require that you keep track of some value that is different from your inputs, so make sure to take advantage of variables! I put some skeleton code for the first 3 methods, so use pattern-matching to define the last two.\n",
15 | "\n",
16 | "1. Implement a function that takes in a list of numbers and prints them out if they are less than 10.\n",
17 | "2. Implement a function that takes in three numbers and returns their sum.\n",
18 | "3. Implement a function that takes in a list of strings and prints every other string. Hint: check our example 2 from class.\n",
19 | "4. Implement a function that takes in two inputs: a number x and a list of numbers. Return a count of the number of times that the number x appears in the list.\n",
20 | "5. Implement a function that takes in a list of numbers and returns the maximum (greatest number) from the list. Assume that all of the numbers in the list are positive numbers.\n",
21 | "\n",
22 | "I also included our solutions for the coding challenges in class at the bottom.\n",
23 | "\n",
24 | "Not had enough? Check this link for more puzzles: http://codingbat.com/python"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": null,
30 | "metadata": {
31 | "collapsed": true
32 | },
33 | "outputs": [],
34 | "source": [
35 | "def print_less_than_ten(lst):\n",
36 | " "
37 | ]
38 | },
39 | {
40 | "cell_type": "code",
41 | "execution_count": null,
42 | "metadata": {
43 | "collapsed": true
44 | },
45 | "outputs": [],
46 | "source": [
47 | "def sum_of_three(x, y, z):\n",
48 | " "
49 | ]
50 | },
51 | {
52 | "cell_type": "code",
53 | "execution_count": null,
54 | "metadata": {
55 | "collapsed": true
56 | },
57 | "outputs": [],
58 | "source": [
59 | "def print_every_other(lst):\n",
60 | " "
61 | ]
62 | },
63 | {
64 | "cell_type": "code",
65 | "execution_count": null,
66 | "metadata": {
67 | "collapsed": true
68 | },
69 | "outputs": [],
70 | "source": []
71 | },
72 | {
73 | "cell_type": "code",
74 | "execution_count": null,
75 | "metadata": {
76 | "collapsed": true
77 | },
78 | "outputs": [],
79 | "source": []
80 | },
81 | {
82 | "cell_type": "markdown",
83 | "metadata": {},
84 | "source": [
85 | "Here are our solutions for the in-class coding challenges:"
86 | ]
87 | },
88 | {
89 | "cell_type": "code",
90 | "execution_count": null,
91 | "metadata": {
92 | "collapsed": false
93 | },
94 | "outputs": [],
95 | "source": [
96 | "## Megan's solution to challenge 1:\n",
97 | "def x_in_list(x, lst):\n",
98 | " for i in lst:\n",
99 | " if i == x:\n",
100 | " return True\n",
101 | " return False\n",
102 | "\n",
103 | "print(x_in_list(3, [1, 2, 3, 4]))\n",
104 | "print(x_in_list(5, [1, 2, 3, 4]))"
105 | ]
106 | },
107 | {
108 | "cell_type": "code",
109 | "execution_count": null,
110 | "metadata": {
111 | "collapsed": false
112 | },
113 | "outputs": [],
114 | "source": [
115 | "## Megan's solution to challenge 2:\n",
116 | "def m_square_every_other(lst):\n",
117 | " even = True\n",
118 | " for i in range(len(lst)):\n",
119 | " if (even):\n",
120 | " lst[i] = lst[i] * lst[i]\n",
121 | " even = False\n",
122 | " else:\n",
123 | " even = True\n",
124 | " return lst\n",
125 | "\n",
126 | "m_square_every_other([1, 2, 3, 4, 5])"
127 | ]
128 | },
129 | {
130 | "cell_type": "code",
131 | "execution_count": null,
132 | "metadata": {
133 | "collapsed": false
134 | },
135 | "outputs": [],
136 | "source": [
137 | "## Liza's solution to challenge 2 (more advanced):\n",
138 | "def l_square_every_other(lst):\n",
139 | " i = 0\n",
140 | " while i < len(lst):\n",
141 | " if i % 2 == 0:\n",
142 | " lst[i] = lst[i] ** 2\n",
143 | " i += 1\n",
144 | " return lst\n",
145 | "\n",
146 | "l_square_every_other([1, 2, 3, 4, 5])"
147 | ]
148 | }
149 | ],
150 | "metadata": {
151 | "kernelspec": {
152 | "display_name": "Python 3",
153 | "language": "python",
154 | "name": "python3"
155 | },
156 | "language_info": {
157 | "codemirror_mode": {
158 | "name": "ipython",
159 | "version": 3
160 | },
161 | "file_extension": ".py",
162 | "mimetype": "text/x-python",
163 | "name": "python",
164 | "nbconvert_exporter": "python",
165 | "pygments_lexer": "ipython3",
166 | "version": "3.4.4"
167 | }
168 | },
169 | "nbformat": 4,
170 | "nbformat_minor": 0
171 | }
172 |
--------------------------------------------------------------------------------
/notebooks/coding_challenges_sol1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Code Challenges: Solutions"
8 | ]
9 | },
10 | {
11 | "cell_type": "markdown",
12 | "metadata": {},
13 | "source": [
14 | "Here are solutions to the coding challenges posted on the website earlier this week. As a reminder, here are the descriptions of the challenges:\n",
15 | "\n",
16 | "1. Implement a function that takes in a list of numbers and prints them out if they are less than 10.\n",
17 | "2. Implement a function that takes in three numbers and returns their sum.\n",
18 | "3. Implement a function that takes in a list of strings and prints every other string. Hint: check our example 2 from class.\n",
19 | "4. Implement a function that takes in two inputs: a number x and a list of numbers. Return a count of the number of times that the number x appears in the list.\n",
20 | "5. Implement a function that takes in a list of numbers and returns the maximum (greatest number) from the list. Assume that all of the numbers in the list are positive numbers.\n",
21 | "\n",
22 | "Below are our solutions, but please keep in mind that *there are many possible solutions,* and just because yours doesn't match ours does not make it invalid!"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": null,
28 | "metadata": {
29 | "collapsed": false
30 | },
31 | "outputs": [],
32 | "source": [
33 | "## Solution to challenge 1\n",
34 | "\n",
35 | "def print_less_than_ten(lst):\n",
36 | " for num in lst:\n",
37 | " if num < 10:\n",
38 | " print(num)\n",
39 | "\n",
40 | "print_less_than_ten([1, 2, 3, 9, 10, 11, 12, 30])"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": null,
46 | "metadata": {
47 | "collapsed": false
48 | },
49 | "outputs": [],
50 | "source": [
51 | "## Solution to challenge 2\n",
52 | "\n",
53 | "def sum_of_three(x, y, z):\n",
54 | " return x + y + x\n",
55 | "\n",
56 | "print(sum_of_three(1, 1, 1))\n",
57 | "print(sum_of_three(1000, 899, 6))"
58 | ]
59 | },
60 | {
61 | "cell_type": "code",
62 | "execution_count": null,
63 | "metadata": {
64 | "collapsed": false
65 | },
66 | "outputs": [],
67 | "source": [
68 | "## Solution to challenge 3\n",
69 | "\n",
70 | "def print_every_other(lst):\n",
71 | " even = True\n",
72 | " for item in lst:\n",
73 | " if even:\n",
74 | " print(item)\n",
75 | " even = False\n",
76 | " else:\n",
77 | " even = True\n",
78 | "\n",
79 | "print_every_other([1, 2, 3, 4, 5])"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": null,
85 | "metadata": {
86 | "collapsed": false
87 | },
88 | "outputs": [],
89 | "source": [
90 | "## Solution to challenge 4\n",
91 | "\n",
92 | "def count_appearances(x, lst):\n",
93 | " count = 0\n",
94 | " for num in lst:\n",
95 | " if num == x:\n",
96 | " count = count + 1\n",
97 | " return count\n",
98 | "\n",
99 | "lst = [1, 3, 3, 4, 5, 6]\n",
100 | "print(count_appearances(3, lst))\n",
101 | "print(count_appearances(0, lst))\n",
102 | "print(count_appearances(5, lst))"
103 | ]
104 | },
105 | {
106 | "cell_type": "code",
107 | "execution_count": null,
108 | "metadata": {
109 | "collapsed": false
110 | },
111 | "outputs": [],
112 | "source": [
113 | "## Solution to challenge 5\n",
114 | "\n",
115 | "def return_max(lst):\n",
116 | " max_val = -1\n",
117 | " for num in lst:\n",
118 | " if num > max_val:\n",
119 | " max_val = num\n",
120 | " return max_val\n",
121 | "\n",
122 | "print(return_max([1, 2, 3, 4]))\n",
123 | "print(return_max([6, 2, 7]))"
124 | ]
125 | },
126 | {
127 | "cell_type": "code",
128 | "execution_count": null,
129 | "metadata": {
130 | "collapsed": true
131 | },
132 | "outputs": [],
133 | "source": []
134 | }
135 | ],
136 | "metadata": {
137 | "kernelspec": {
138 | "display_name": "Python 3",
139 | "language": "python",
140 | "name": "python3"
141 | },
142 | "language_info": {
143 | "codemirror_mode": {
144 | "name": "ipython",
145 | "version": 3
146 | },
147 | "file_extension": ".py",
148 | "mimetype": "text/x-python",
149 | "name": "python",
150 | "nbconvert_exporter": "python",
151 | "pygments_lexer": "ipython3",
152 | "version": "3.4.4"
153 | }
154 | },
155 | "nbformat": 4,
156 | "nbformat_minor": 0
157 | }
158 |
--------------------------------------------------------------------------------
/notebooks/example2.txt:
--------------------------------------------------------------------------------
1 | bears
2 | beets
3 | Battlestar Galactica
4 |
--------------------------------------------------------------------------------
/notebooks/filewriting/capitals.csv:
--------------------------------------------------------------------------------
1 | Country,Capital,Latitude,Longitude
Afghanistan,Kabul,34¡28'N,69¡11'E
Albania,Tirane,41¡18'N,19¡49'E
Algeria,Algiers,36¡42'N,03¡08'E
American Samoa,Pago Pago,14¡16'S,170¡43'W
Andorra,Andorra la Vella,42¡31'N,01¡32'E
Angola,Luanda,08¡50'S,13¡15'E
Antigua and Barbuda,W. Indies,17¡20'N,61¡48'W
Argentina,Buenos Aires,36¡30'S,60¡00'W
Armenia,Yerevan,40¡10'N,44¡31'E
Aruba,Oranjestad,12¡32'N,70¡02'W
Australia,Canberra,35¡15'S,149¡08'E
Austria,Vienna,48¡12'N,16¡22'E
Azerbaijan,Baku,40¡29'N,49¡56'E
Bahamas,Nassau,25¡05'N,77¡20'W
Bahrain,Manama,26¡10'N,50¡30'E
Bangladesh,Dhaka,23¡43'N,90¡26'E
Barbados,Bridgetown,13¡05'N,59¡30'W
Belarus,Minsk,53¡52'N,27¡30'E
Belgium,Brussels,50¡51'N,04¡21'E
Belize,Belmopan,17¡18'N,88¡30'W
Benin,Porto-Novo (constitutional cotonou) (seat of gvnt),06¡23'N,02¡42'E
Bhutan,Thimphu,27¡31'N,89¡45'E
Bolivia,La Paz (adm.)/sucre (legislative),16¡20'S,68¡10'W
Bosnia and Herzegovina,Sarajevo,43¡52'N,18¡26'E
Botswana,Gaborone,24¡45'S,25¡57'E
Brazil,Brasilia,15¡47'S,47¡55'W
British Virgin Islands,Road Town,18¡27'N,64¡37'W
Brunei Darussalam,Bandar Seri Begawan,04¡52'N,115¡00'E
Bulgaria,Sofia,42¡45'N,23¡20'E
Burkina Faso,Ouagadougou,12¡15'N,01¡30'W
Burundi,Bujumbura,03¡16'S,29¡18'E
Cambodia,Phnom Penh,11¡33'N,104¡55'E
Cameroon,Yaounde,03¡50'N,11¡35'E
Canada,Ottawa,45¡27'N,75¡42'W
Cape Verde,Praia,15¡02'N,23¡34'W
Cayman Islands,George Town,19¡20'N,81¡24'W
Central African Republic,Bangui,04¡23'N,18¡35'E
Chad,N'Djamena,12¡10'N,14¡59'E
Chile,Santiago,33¡24'S,70¡40'W
China,Beijing,39¡55'N,116¡20'E
Colombia,Bogota,04¡34'N,74¡00'W
Comros,Moroni,11¡40'S,43¡16'E
Congo,Brazzaville,04¡09'S,15¡12'E
Costa Rica,San Jose,09¡55'N,84¡02'W
Cote d'Ivoire,Yamoussoukro,06¡49'N,05¡17'W
Croatia,Zagreb,45¡50'N,15¡58'E
Cuba,Havana,23¡08'N,82¡22'W
Cyprus,Nicosia,35¡10'N,33¡25'E
Czech Republic,Prague,50¡05'N,14¡22'E
Democratic People's Republic of,P'yongyang,39¡09'N,125¡30'E
Democratic Republic of the Congo,Kinshasa,04¡20'S,15¡15'E
Denmark,Copenhagen,55¡41'N,12¡34'E
Djibouti,Djibouti,11¡08'N,42¡20'E
Dominica,Roseau,15¡20'N,61¡24'W
Dominica Republic,Santo Domingo,18¡30'N,69¡59'W
East Timor,Dili,08¡29'S,125¡34'E
Ecuador,Quito,00¡15'S,78¡35'W
Egypt,Cairo,30¡01'N,31¡14'E
El Salvador,San Salvador,13¡40'N,89¡10'W
Equatorial Guinea,Malabo,03¡45'N,08¡50'E
Eritrea,Asmara,15¡19'N,38¡55'E
Estonia,Tallinn,59¡22'N,24¡48'E
Ethiopia,Addis Ababa,09¡02'N,38¡42'E
Falkland Islands (Malvinas),Stanley,51¡40'S,59¡51'W
Faroe Islands,Torshavn,62¡05'N,06¡56'W
Fiji,Suva,18¡06'S,178¡30'E
Finland,Helsinki,60¡15'N,25¡03'E
France,Paris,48¡50'N,02¡20'E
French Guiana,Cayenne,05¡05'N,52¡18'W
French Polynesia,Papeete,17¡32'S,149¡34'W
Gabon,Libreville,00¡25'N,09¡26'E
Gambia,Banjul,13¡28'N,16¡40'W
Georgia,T'bilisi,41¡43'N,44¡50'E
Germany,Berlin,52¡30'N,13¡25'E
Ghana,Accra,05¡35'N,00¡06'W
Greece,Athens,37¡58'N,23¡46'E
Greenland,Nuuk,64¡10'N,51¡35'W
Guadeloupe,Basse-Terre,16¡00'N,61¡44'W
Guatemala,Guatemala,14¡40'N,90¡22'W
Guernsey,St. Peter Port,49¡26'N,02¡33'W
Guinea,Conakry,09¡29'N,13¡49'W
Guinea-Bissau,Bissau,11¡45'N,15¡45'W
Guyana,Georgetown,06¡50'N,58¡12'W
Haiti,Port-au-Prince,18¡40'N,72¡20'W
Heard Island and McDonald Islands,,53¡00'S,74¡00'E
Honduras,Tegucigalpa,14¡05'N,87¡14'W
Hungary,Budapest,47¡29'N,19¡05'E
Iceland,Reykjavik,64¡10'N,21¡57'W
India,New Delhi,28¡37'N,77¡13'E
Indonesia,Jakarta,06¡09'S,106¡49'E
Iran (Islamic Republic of),Tehran,35¡44'N,51¡30'E
Iraq,Baghdad,33¡20'N,44¡30'E
Ireland,Dublin,53¡21'N,06¡15'W
Israel,Jerusalem,31¡47'N,35¡12'E
Italy,Rome,41¡54'N,12¡29'E
Jamaica,Kingston,18¡00'N,76¡50'W
Jordan,Amman,31¡57'N,35¡52'E
Kazakhstan,Astana,51¡10'N,71¡30'E
Kenya,Nairobi,01¡17'S,36¡48'E
Kiribati,Tarawa,01¡30'N,173¡00'E
Kuwait,Kuwait,29¡30'N,48¡00'E
Kyrgyzstan,Bishkek,42¡54'N,74¡46'E
Lao People's Democratic Republic,Vientiane,17¡58'N,102¡36'E
Latvia,Riga,56¡53'N,24¡08'E
Lebanon,Beirut,33¡53'N,35¡31'E
Lesotho,Maseru,29¡18'S,27¡30'E
Liberia,Monrovia,06¡18'N,10¡47'W
Libyan Arab Jamahiriya,Tripoli,32¡49'N,13¡07'E
Liechtenstein,Vaduz,47¡08'N,09¡31'E
Lithuania,Vilnius,54¡38'N,25¡19'E
Luxembourg,Luxembourg,49¡37'N,06¡09'E
"Macao, China",Macau,22¡12'N,113¡33'E
Madagascar,Antananarivo,18¡55'S,47¡31'E
Malawi,Lilongwe,14¡00'S,33¡48'E
Malaysia,Kuala Lumpur,03¡09'N,101¡41'E
Maldives,Male,04¡00'N,73¡28'E
Mali,Bamako,12¡34'N,07¡55'W
Malta,Valletta,35¡54'N,14¡31'E
Martinique,Fort-de-France,14¡36'N,61¡02'W
Mauritania,Nouakchott,20¡10'S,57¡30'E
Mayotte,Mamoudzou,12¡48'S,45¡14'E
Mexico,Mexico,19¡20'N,99¡10'W
Micronesia (Federated States of),Palikir,06¡55'N,158¡09'E
"Moldova, Republic of",Chisinau,47¡02'N,28¡50'E
Mozambique,Maputo,25¡58'S,32¡32'E
Myanmar,Yangon,16¡45'N,96¡20'E
Namibia,Windhoek,22¡35'S,17¡04'E
Nepal,Kathmandu,27¡45'N,85¡20'E
Netherlands,Amsterdam/The Hague (seat of Gvnt),52¡23'N,04¡54'E
Netherlands Antilles,Willemstad,12¡05'N,69¡00'W
New Caledonia,Noumea,22¡17'S,166¡30'E
New Zealand,Wellington,41¡19'S,174¡46'E
Nicaragua,Managua,12¡06'N,86¡20'W
Niger,Niamey,13¡27'N,02¡06'E
Nigeria,Abuja,09¡05'N,07¡32'E
Norfolk Island,Kingston,45¡20'S,168¡43'E
Northern Mariana Islands,Saipan,15¡12'N,145¡45'E
Norway,Oslo,59¡55'N,10¡45'E
Oman,Masqat,23¡37'N,58¡36'E
Pakistan,Islamabad,33¡40'N,73¡10'E
Palau,Koror,07¡20'N,134¡28'E
Panama,Panama,09¡00'N,79¡25'W
Papua New Guinea,Port Moresby,09¡24'S,147¡08'E
Paraguay,Asuncion,25¡10'S,57¡30'W
Peru,Lima,12¡00'S,77¡00'W
Philippines,Manila,14¡40'N,121¡03'E
Poland,Warsaw,52¡13'N,21¡00'E
Portugal,Lisbon,38¡42'N,09¡10'W
Puerto Rico,San Juan,18¡28'N,66¡07'W
Qatar,Doha,25¡15'N,51¡35'E
Republic of Korea,Seoul,37¡31'N,126¡58'E
Romania,Bucuresti,44¡27'N,26¡10'E
Russian Federation,Moskva,55¡45'N,37¡35'E
Rawanda,Kigali,01¡59'S,30¡04'E
Saint Kitts and Nevis,Basseterre,17¡17'N,62¡43'W
Saint Lucia,Castries,14¡02'N,60¡58'W
Saint Pierre and Miquelon,Saint-Pierre,46¡46'N,56¡12'W
Saint vincent and the Grenadines,Kingstown,13¡10'N,61¡10'W
Samoa,Apia,13¡50'S,171¡50'W
San Marino,San Marino,43¡55'N,12¡30'E
Sao Tome and Principe,Sao Tome,00¡10'N,06¡39'E
Saudi Arabia,Riyadh,24¡41'N,46¡42'E
Senegal,Dakar,14¡34'N,17¡29'W
Sierra Leone,Freetown,08¡30'N,13¡17'W
Slovakia,Bratislava,48¡10'N,17¡07'E
Slovenia,Ljubljana,46¡04'N,14¡33'E
Solomon Islands,Honiara,09¡27'S,159¡57'E
Somalia,Mogadishu,02¡02'N,45¡25'E
South Africa,Pretoria (adm.) / Cap Town (Legislative) / Bloemfontein (Judicial),25¡44'S,28¡12'E
Spain,Madrid,40¡25'N,03¡45'W
Sudan,Khartoum,15¡31'N,32¡35'E
Suriname,Paramaribo,05¡50'N,55¡10'W
Swaziland,Mbabane (Adm.),26¡18'S,31¡06'E
Sweden,Stockholm,59¡20'N,18¡03'E
Switzerland,Bern,46¡57'N,07¡28'E
Syrian Arab Republic,Damascus,33¡30'N,36¡18'E
Tajikistan,Dushanbe,38¡33'N,68¡48'E
Thailand,Bangkok,13¡45'N,100¡35'E
The Former Yugoslav Republic of Macedonia,Skopje,42¡01'N,21¡26'E
Togo,Lome,06¡09'N,01¡20'E
Tonga,Nuku'alofa,21¡10'S,174¡00'W
Tunisia,Tunis,36¡50'N,10¡11'E
Turkey,Ankara,39¡57'N,32¡54'E
Turkmenistan,Ashgabat,38¡00'N,57¡50'E
Tuvalu,Funafuti,08¡31'S,179¡13'E
Uganda,Kampala,00¡20'N,32¡30'E
Ukraine,Kiev (Rus),50¡30'N,30¡28'E
United Arab Emirates,Abu Dhabi,24¡28'N,54¡22'E
United Kingdom of Great Britain and Northern Ireland,London,51¡36'N,00¡05'W
United Republic of Tanzania,Dodoma,06¡08'S,35¡45'E
United States of America,Washington DC,39¡91'N,77¡02'W
United States of Virgin Islands,Charlotte Amalie,18¡21'N,64¡56'W
Uruguay,Montevideo,34¡50'S,56¡11'W
Uzbekistan,Tashkent,41¡20'N,69¡10'E
Vanuatu,Port-Vila,17¡45'S,168¡18'E
Venezuela,Caracas,10¡30'N,66¡55'W
Viet Nam,Hanoi,21¡05'N,105¡55'E
Yugoslavia,Belgrade,44¡50'N,20¡37'E
Zambia,Lusaka,15¡28'S,28¡16'E
Zimbabwe,Harare,17¡43'S,31¡02'E
--------------------------------------------------------------------------------
/notebooks/filewriting/counties.txt:
--------------------------------------------------------------------------------
1 | Alameda
Alpine
Amador
Butte
Calaveras
Colusa
Contra Costa
Del Norte
El Dorado
Fresno
Glenn
Humboldt
Imperial
Inyo
Kern
Kings
Lake
Lassen
Los Angeles
Madera
Marin
Mariposa
Mendocino
Merced
Modoc
Mono
Monterey
Napa
Nevada
Orange
Placer
Plumas
Riverside
Sacramento
San Benito
San Bernardino
San Diego
San Francisco
San Joaquin
San Luis Obispo
San Mateo
Santa Barbara
Santa Clara
Santa Cruz
Shasta
Sierra
Siskiyou
Solano
Sonoma
Stanislaus
Sutter
Tehama
Trinity
Tulare
Tuolumne
Ventura
Yolo
Yuba
--------------------------------------------------------------------------------
/notebooks/filewriting/example.txt:
--------------------------------------------------------------------------------
1 | This is line 1.
2 | This is line 2.
3 | This is line 3.
4 | This is line 4.
5 | This is line 5.
6 |
--------------------------------------------------------------------------------
/notebooks/filewriting/example2.txt:
--------------------------------------------------------------------------------
1 | bears
2 | beets
3 | Battlestar Galactica
4 |
--------------------------------------------------------------------------------
/notebooks/filewriting/sample.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/notebooks/filewriting/sample.txt
--------------------------------------------------------------------------------
/notebooks/filewriting/states.csv:
--------------------------------------------------------------------------------
1 | state bird,year in union,population,state,capital
2 | Northern cardinal,1803,11.6,Ohio,Columbus
3 | ,1837,9.9,Michigan,Lansing
4 | California quail,1850,39.1,California,Sacramento
5 | ,1834,20.2,Florida,Tallahassee
6 | ,1819,4.9,Alabama,Montgomery
7 |
--------------------------------------------------------------------------------
/notebooks/query_results.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/notebooks/query_results.csv
--------------------------------------------------------------------------------
/notebooks/sample.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/notebooks/sample.txt
--------------------------------------------------------------------------------
/notebooks/yelp_api/yelp_pic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/notebooks/yelp_api/yelp_pic.png
--------------------------------------------------------------------------------
/pages/newlearners.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: New to Python? Start here
4 | comments: true
5 | permalink: /learn/
6 | ---
7 |
8 | * content
9 | {:toc}
10 |
11 | ## Start here!
12 |
13 | [Try this 10-minute tutorial.](https://try-python.appspot.com/) When it
14 | loads, type `tutorial` and press Enter to start.
15 |
16 | {% highlight python %}
17 | def hi():
18 | print("hello world")
19 | {% endhighlight %}
20 |
21 | ## Set up your computer
22 |
23 | This is our recommended way to install Python on your system.
24 |
25 | #### Install Anaconda
26 |
27 | * Please [download the Anaconda installer](http://continuum.io/downloads). We recommend Python 3.
28 | * Choose `Install for me only`
29 | * By default, Anaconda will prepend itself to your PATH -- leave this as is
30 | * When Anaconda has finished installing, open a terminal (Linux, OSX), or the Anaconda Prompt (Windows)
31 | * Type `conda update conda`, hit enter, and then type "y" (and hit enter)
32 | * Type `conda update anaconda`, hit enter, and then type "y" (and hit enter)
33 |
34 | #### Run the Jupyter Notebook
35 |
36 | With Jupyter, you intersperse code, output, explanatory text, and figures in one big file called a "notebook." Notebooks are a convenient format to explore a language and to share examples of code.
37 |
38 | * To run a notebook, open the Terminal (Linux, OSX) or Anaconda Prompt (Windows) and type `jupyter notebook`.
39 | * The notebook will open a new tab in your default browser. **Do not close the terminal**, as this will also shutdown the notebook.
40 | * When it has loaded, click on "New" (at the top right) and then "Python3" to create a new notebook.
41 |
42 | #### Python 2 vs Python 3
43 |
44 | Python 3 (released in 2008) is the newest version of Python, and most features
45 | have not changed. Most packages have been updated to Python 3 by now (2016).
46 | So, if your lab does not have a preference, I recommend using Python 3.
47 |
48 | There are a couple key differences for novice programmers:
49 |
50 | * In Python 2, you can print with `print 42` or `print(42)`. In Python
51 | 3, you need to use parentheses, as in `print(42)`.
52 | * In Python 2, division of two integers like `5/2` will evaluate to
53 | `2`. (Python will drop the remainder if both numbers are integers.)
54 | Python 3 does exact division ('2.5', in this example). If you use Python 2 and do not want this behavior, add this line at the top of each program:
55 |
56 | `from __future__ import division`.
57 |
58 | #### Text editors and IDEs
59 |
60 | For creating large projects in Python, we recommend using a text editor in combination with the Jupyter notebook. Popular choices include:
61 |
62 | * [Sublime Text](http://sublimetext.com/)
63 | * [Atom](https://atom.io/)
64 | * [Light Table](http://lighttable.com/)
65 |
66 | For even larger projects, a well-engineered IDE (Interactive Development Environment) may be better than a text editor. Typically, IDEs include drag-and-drop support for debugging and refactoring. Popular choices include:
67 |
68 | * [Spyder](https://pythonhosted.org/spyder/installation.html)
69 | * [PyCharm](https://www.jetbrains.com/pycharm-edu/)
70 |
71 | ## Practice
72 | Past topics of the Python Working Group are [linked here](/past). Suggestions? Send us an email at [dlab-frontdesk@berkeley.edu](mailto:dlab-frontdesk@berkeley.edu).
73 |
74 | #### Software Carpentry
75 |
76 | These exercises are really useful to get acquainted with Python. Here's a link to the [Jupyter notebook version](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.ipynb) and the [webpage version](https://bids.github.io/2016-01-14-berkeley/python/00-python-intro.html).
77 |
78 | #### Python for Social Sciences
79 |
80 | This is a free online book by Jean Mark Gawron. It's free and online at [this link](http://www-rohan.sdsu.edu/~gawron/python_for_ss/course_core/book_draft/Preface/Preface.html).
81 |
82 | #### Resources
83 | Check the [Learning Resources](/resources) page for more learning materials. Others in the [community](/community) may also have relevant materials.
84 |
85 |
--------------------------------------------------------------------------------
/pages/pythoncommunity.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: Python Community
4 | comments: true
5 | permalink: /community/
6 | redirect-from: events/archives.html
7 | ---
8 |
9 | * content
10 | {:toc}
11 |
12 | ## Campus groups
13 | The Python community is quite welcoming! There are a variety of places on campus to get help, get involved, or stay in touch.
14 |
15 | #### The Hacker Within
16 | THW is a weekly meeting about scientific computing.
17 | The Hacker Within supports the development of your inner hacker, in a [weekly meeting in BIDS](http://bids.berkeley.edu/about/directions-and-travel) for sharing skills and best practices for scientific computation. You can find out more on their website: [http://thehackerwithin.github.io/berkeley/](http://thehackerwithin.github.io/berkeley/)
18 |
19 | #### Python Practice Working Group
20 | You are on our page! We meet weekly at the D-Lab. We hold informal weekly meetings teaching and learning about different topics in the Python programming language, especially for social science, data science, and visualization. You can [subscribe to our mailing list here](https://groups.google.com/a/lists.berkeley.edu/d/forum/pythonpractice).
21 |
22 | #### py4science
23 | The py4science mailing list is still functional. This is a general campus discussion and announcement list for Python. [Subscribe here!](https://calmail.berkeley.edu/manage/list/listinfo/py4science@lists.berkeley.edu)
24 |
25 | #### Data Science Resource List
26 | [This is a listing of data science groups](http://marwahaha.github.io/datamap/support) at UC Berkeley, where you can get help.
27 |
28 | #### Prior groups in D-Lab
29 |
30 | Social Computing Group [used its mailing list archive as its
31 | website](https://www.mail-archive.com/socialcomputing@lists.berkeley.edu/). The Python Work(ers) Party has its [Twitter account
32 | here](https://twitter.com/PyWorkParty), and its [archives are here](http://python.berkeley.edu/events/archive/).
33 |
34 | ## Events
35 | Have something you want to add? Send an email to [dlab-frontdesk@berkeley.edu](mailto:dlab-frontdesk@berkeley.edu).
36 |
37 | #### Events at BIDS
38 | [http://bids.berkeley.edu/events](http://bids.berkeley.edu/events)
39 |
40 | #### Events at D-Lab
41 | [http://dlab.berkeley.edu/calendar-node-field-date](http://dlab.berkeley.edu/calendar-node-field-date)
42 |
43 | #### Old Python Events
44 | [http://python.berkeley.edu/events/archive](http://python.berkeley.edu/events/archive)
45 |
46 | {% highlight python %}
47 | def community():
48 | print("I <3 Python!")
49 | {% endhighlight %}
50 |
51 |
--------------------------------------------------------------------------------
/pages/working_group_pastmtgs.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: Past Meetings
4 | comments: true
5 | permalink: /past/
6 | ---
7 |
8 | ## Past Meetings
9 | Here is a list of topics from our previous meetings and associated learning resources.
10 |
11 |
');
141 | /* //数据加载完成后,加固定边栏
142 | $('#myAffix').attr({
143 | 'data-spy': 'affix',
144 | 'data-offset': '50'
145 | });*/
146 | }
147 | console.log("myAffix!!!");
148 | }
--------------------------------------------------------------------------------
/static/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/to-the-next-level-2-29-16.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dlab-berkeley/python-berkeley/9d7fa03e91e19d6da44245c32a689e33b75c9b83/to-the-next-level-2-29-16.pdf
--------------------------------------------------------------------------------
/trainings/2014-08-berkeley-dlab.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | redirect_from: /trainings/2014-08-berkeley-dlab.html
4 | ---
5 |
6 |
7 |
8 | ## Getting ready
9 |
10 | Please download and install BCE 0.1.1 for virtualbox. Links and instructions are
11 | [here](http://collaboratool.berkeley.edu/using-virtualbox.html).
12 |
13 | And, while you're looking ahead to our training, check out our [Learning
14 | Resources](learning_resources.html).
15 |
16 | ## Agenda and Instructors
17 |
18 | Please note that the class will proceed at the pace of the students. Topics
19 | below are meant as guidelines, and are not guaranteed!
20 |
21 | ### Instructing all days
22 |
23 | - Dav Clark
24 |
25 | ### Monday, Aug 18 (FUNdamentals)
26 |
27 | - [Etherpad for the class](https://etherpad.mozilla.org/dlab-pro-fun-08-2014)
28 | - [Slides](https://docs.google.com/presentation/d/1RwrP4171VsgA-cj4p9h5bfOgZ4xWzH4Op_RlXqBgIss/edit?usp=sharing)
29 | - [Git Fundamentals on GitHub](https://github.com/dlab-berkeley/git-fundamentals)
30 |
31 | **Assistant Instructor:**
32 |
33 | - Dillon Niederhut
34 |
35 | ### Tuesday, Aug 19
36 |
37 | - Basic operations
38 | - reusable code
39 | - and testing
40 | - [Etherpad for Python day 1](https://etherpad.mozilla.org/dlab-py-fun-day1-08-2014)
41 | - [Python FUNdamentals on GitHub](https://github.com/dlab-berkeley/python-fundamentals)
42 | - [Intro Notebook](https://github.com/dlab-berkeley/python-fundamentals/blob/master/cheat-sheets/01-Intro.ipynb)
43 | - [Functions Notebook](https://github.com/dlab-berkeley/python-fundamentals/blob/master/cheat-sheets/02-Functions%20and%20Using%20Modules.ipynb)
44 |
45 | **Assistant Instructor:**
46 |
47 | - Matt Davis
48 |
49 | ### Wednesday, Aug 20
50 |
51 | - Strings (and using methods)
52 | - making choices
53 | - [Etherpad for Python day 2](https://etherpad.mozilla.org/dlab-py-fun-day1-08-2014)
54 | - Continue using resources from Tuesday!
55 |
56 | **Assistant Instructor:**
57 |
58 | - Danny Hermes
59 |
60 | ### Thursday, Aug 21
61 |
62 | - containers
63 | - Repeating things
64 | - [Etherpad for Python day 3](https://etherpad.mozilla.org/dlab-py-fun-day1-08-2014)
65 | - Continue using resources from Tuesday and Wednesday!
66 | - [Scrape the web](http://docs.python-guide.org/en/latest/scenarios/scrape/)
67 |
68 | **Assistant Instructor:**
69 |
70 | - MinRK
71 |
72 | ### Friday, Aug 22
73 |
74 | - Text analysis of Hip Hop lyrics with Python
75 |
76 | **Guest Instructor:**
77 |
78 | - Omoju Miller
79 |
80 | ## Join The Community!
81 |
82 | We keep track of our *Friday 4-6pm meetings* (this summer, about *every other
83 | week*) on our [events page](/events). **We'll have a meeting right after the
84 | Friday class.**
85 |
86 | Upcoming events, and links to our mailing list and calendar are always available
87 | in the side bar at the right (or above on mobile/narrow browsers). All are
88 | welcome! Sometimes there are better resources (like [Stack
89 | Overflow](http://stackoverflow.com), or even just Google), but the Berkeley
90 | Python community is always happy to get you moving in the right direction.
91 |
92 | Check out the [Python Workers'
93 | Party](events/2014/01/24/python-workers-party-rally.html) announcement for the
94 | current history of the Berkeley Python community, including our
95 | zany/revolutionary python party graphic!
96 |
--------------------------------------------------------------------------------
/trainings/2015-01-berkeley-dlab.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | redirect_from: /trainings/2015-01-berkeley-dlab.html
4 | ---
5 |
6 |
7 |
8 | # Potential instructors
9 |
10 | Currently, this training is being organized here (via pull requests), and on the
11 | related [issue on the github
12 | tracker](https://github.com/dlab-berkeley/python-berkeley/issues/37).
13 |
14 | Below is an incomplete schematic of what the course will hopefully look like,
15 | including instructors that I think could work for that day. Currently, if an
16 | instructor is listed below, it does NOT mean they are actually committed to
17 | teaching that day!
18 |
19 | Sign-up pages are up on the D-Lab site for
20 | [FUNdamentals](http://dlab.berkeley.edu/training/programming-fundamentals-0)
21 | (the first day, Monday), and the
22 | [intensive](http://dlab.berkeley.edu/training/python-intensive-2)
23 | (Tuesday-Friday). We'll probably have a party at the end, as per usual.
24 |
25 | ## Getting ready
26 |
27 | Please download and install BCE 0.2 for VirtualBox. Links and instructions are
28 | [here](http://collaboratool.berkeley.edu/using-virtualbox.html). NOTE - BCE 0.2
29 | IS NOT YET RELEASED. URL IS SUBJECT TO CHANGE!
30 |
31 | And, while you're looking ahead to our training, check out our [Learning
32 | Resources](learning_resources.html).
33 |
34 | ## Agenda and Instructors
35 |
36 | Please note that the class will proceed at the pace of the students. Topics
37 | below are meant as guidelines, and are not guaranteed!
38 |
39 |
40 | ### Monday, Jan 12 (FUNdamentals)
41 |
42 | Instructor (confirmed!): @rochelleterman
43 |
44 | Learn about the command line (in particular, installing packages and running
45 | scripts), PyCharm (and the general idea of text editors), and the IPython
46 | notebook (including the NBviewer).
47 |
48 | - [Etherpad for the class]()
49 | - [Slides](https://docs.google.com/presentation/d/1RwrP4171VsgA-cj4p9h5bfOgZ4xWzH4Op_RlXqBgIss/edit?usp=sharing) (instructor is welcome to change)
50 | - [Git Fundamentals on GitHub](https://github.com/dlab-berkeley/git-fundamentals)
51 |
52 |
53 | ### Tuesday, Jan 13
54 |
55 | Instructor: @omoju
56 |
57 | - Drawing things
58 | - Text analysis of Hip Hop lyrics with Python
59 |
60 | - Basic operations
61 | - reusable code
62 | - and testing
63 | - [Etherpad for Python day 1]()
64 | - [Python FUNdamentals on GitHub](https://github.com/dlab-berkeley/python-fundamentals)
65 | - [Intro Notebook](https://github.com/dlab-berkeley/python-fundamentals/blob/master/cheat-sheets/01-Intro.ipynb)
66 | - [Functions Notebook](https://github.com/dlab-berkeley/python-fundamentals/blob/master/cheat-sheets/02-Functions%20and%20Using%20Modules.ipynb)
67 |
68 |
69 | ### Wednesday, Jan 14
70 |
71 | Instructor: @emhart
72 | Assisting: @rochelleterman
73 |
74 | - Strings (and using methods)
75 | - making choices
76 | - [Etherpad for Python day 2]()
77 | - Continue using resources from Tuesday!
78 |
79 |
80 | ### Thursday, Jan 15
81 |
82 | Instructor: @takluyver
83 | Assisting: @rdhyee
84 |
85 | - containers
86 | - Repeating things
87 | - [Etherpad for Python day 3]()
88 | - Continue using resources from Tuesday and Wednesday!
89 | - [Scrape the web](http://docs.python-guide.org/en/latest/scenarios/scrape/)
90 |
91 |
92 | ### Friday, Jan 16
93 |
94 | Instructor: @davclark
95 |
96 | ## Join The Community!
97 |
98 | We keep track of our *Friday 4:30-6pm meetings* on our [events page](/events).
99 | **We'll have a meeting right after the Friday class.** (TBD)
100 |
101 | Upcoming events, and links to our mailing list and calendar, along with our
102 | sister organization, The Hacker Within, are always available in the side bar at
103 | the right (or above on mobile/narrow browsers). All are welcome! Sometimes there
104 | are better resources (like [Stack Overflow](http://stackoverflow.com), or even
105 | just Google), but the Berkeley Python community is always happy to get you
106 | moving in the right direction.
107 |
--------------------------------------------------------------------------------
/trainings/2015-05-berkeley-dlab.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | redirect_from: /trainings/2015-05-berkeley-dlab.html
4 | ---
5 |
6 |
7 |
8 | # Potential instructors
9 |
10 | Currently, this training is being organized here (via pull requests), and on the
11 | related [issue on the github
12 | tracker](https://github.com/dlab-berkeley/python-berkeley/issues/37).
13 |
14 | Below is an incomplete schematic of what the course will approximately look like,
15 | instructors for each day. Again, I'd like to have a short party at the end.
16 |
17 | A sign-up page still needs to be made on the D-Lab site.
18 |
19 | ## Getting ready
20 |
21 | We'll use the most recent version of BCE for VirtualBox. Links and instructions
22 | are [here](http://bce.berkeley.edu/install.html). While it's a bit sharp-edged,
23 | we'll use the most recent [Summer Preview
24 | version](https://berkeley.box.com/s/0hibyy77ojyv6v1ybynioz44htwzs99v), along
25 | with the most recent version of
26 | [VirtualBox](https://www.virtualbox.org/wiki/Downloads).
27 |
28 | And, while you're looking ahead to our training, check out our [Learning
29 | Resources](learning_resources.html).
30 |
31 | ## Agenda and Instructors
32 |
33 | Please note that the class will proceed at the pace of the students. Topics
34 | below are meant as guidelines, and are not guaranteed!
35 |
36 |
37 | ### Monday, May 18
38 |
39 | Instructor: @davclark
40 |
41 | Learn about the command line (in particular, installing packages and running
42 | scripts), getting files with Git, PyCharm (and the general idea of text
43 | editors), and the learning materials embedded in PyCharm.
44 |
45 | - [Etherpad for the class](https://etherpad.mozilla.org/2015-05-dlab-fundamentals)
46 | - [Slides](https://docs.google.com/presentation/d/1RwrP4171VsgA-cj4p9h5bfOgZ4xWzH4Op_RlXqBgIss/edit?usp=sharing)
47 | - [Git Fundamentals on GitHub](https://github.com/dlab-berkeley/git-fundamentals)
48 |
49 |
50 | ### Tuesday, May 19
51 |
52 | Instructor: @davclark
53 |
54 | - Text analysis of Hip Hop lyrics with Python
55 |
56 | - Basic operations
57 | - Working with strings (text)
58 | - Containers
59 | - Loops
60 | - Reusable code
61 | - [Etherpad for day 2](https://etherpad.mozilla.org/2015-05-dlab-fundamentals-2)
62 |
63 | Materials:
64 |
65 | - [HipHopathy](https://github.com/omoju/hiphopathy)
66 | - [NBViewer](http://nbviewer.ipython.org)
67 | - [Our Project](https://github.com/davclark/2015-05-fundamentals-hiphopathy)
68 |
69 | ### Wednesday, May 20
70 |
71 | Instructor: @davclark
72 |
73 | - Strings (and using methods)
74 | - making choices
75 | - [Etherpad for Python day 3](https://etherpad.mozilla.org/2015-05-dlab-fundamentals-3)
76 | - Continue using resources from Tuesday!
77 |
78 |
79 | ### Thursday, May 21
80 |
81 | Instructor: @deniederhut
82 |
83 | - containers
84 | - Repeating things
85 | - TwitterAPI (link?)
86 | - Etherpad for Python day 4??
87 | - Continue using resources from Tuesday and Wednesday!
88 |
89 |
90 | ### Friday, Jan 16
91 |
92 | Instructor: @davclark
93 |
94 | - [Etherpad for Python day
95 | 5](https://etherpad.mozilla.org/2015-05-dlab-fundamentals-5)
96 | - Working with tabular data, standard library vs. Pandas (the [standard
97 | documentation](http://pandas.pydata.org/pandas-docs/version/0.16.1/) is a bit
98 | tough, so I'd recommend [this
99 | book](http://proquest.safaribooksonline.com/book/programming/python/9781449323592))
100 | - For plotting, the place to start is
101 | [matplotlib](http://matplotlib.org/index.html), but
102 | [Seaborn](http://stanford.edu/~mwaskom/software/seaborn/) looks nicer by
103 | default (matplotlib is also covered well in the above-mentioned
104 | [book](http://proquest.safaribooksonline.com/book/programming/python/9781449323592)).
105 | - [Scrape the web](http://docs.python-guide.org/en/latest/scenarios/scrape/)
106 | - Dav's current project to [scrape the CA Dept. of
107 | Ed.](https://github.com/davclark/LEA-scrapr)
108 | - Saving time with [NLTK](http://www.nltk.org/)
109 |
110 | ## Join The Community!
111 |
112 | We keep track of our *Friday 2:30-4:30pm Social Computing meetings* on our [mailing
113 | list](https://www.mail-archive.com/socialcomputing@lists.berkeley.edu).
114 | **We won't have a meeting right after the Friday class, but join the mailing
115 | list! (look in the sidebar, or above on mobile/narrow browsers).**
116 |
117 | Upcoming events, and links to our mailing list and calendar, along with our
118 | sister organization, The Hacker Within, are also available in the side bar at
119 | the right. All are welcome! Sometimes there are better resources (like [Stack
120 | Overflow](http://stackoverflow.com), or even just Google), but the Berkeley
121 | Python community is always happy to get you moving in the right direction.
122 |
--------------------------------------------------------------------------------
/trainings/2015-08-berkeley-dlab.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | redirect_from: /trainings/2015-08-berkeley-dlab.html
4 | ---
5 |
6 |
7 |
8 | ## Welcome to Python!
9 |
10 | Below is a *schematic* of what the course will look like, including instructors
11 | for each day. It provides info that complements the [info on the D-Lab
12 | website](http://dlab.berkeley.edu/training/programming-fundamentals-python-intensive).
13 |
14 | ## Getting ready
15 |
16 | We'll use the most recent version of BCE for VirtualBox. Links and instructions
17 | are [here](http://bce.berkeley.edu/install.html). We'll use the Summer 2015
18 | version (so if you have a previous version installed, please upgrade!). The
19 | instructions recommend using an older (tested) version of VirtualBox, but I've
20 | been happily using version 5.0 which should have better performance on Windows
21 | -- [VirtualBox](https://www.virtualbox.org/wiki/Downloads).
22 |
23 | And, while you're looking ahead to our training, check out our [Learning
24 | Resources](learning_resources.html).
25 |
26 | ## Agenda and Instructors
27 |
28 | Please note that the class will proceed at the pace of the students. Topics
29 | below are meant as guidelines, and are not guaranteed!
30 |
31 |
32 | ### Monday, August 17 [(Programming FUNdamentals)](http://dlab.berkeley.edu/training/programming-fundamentals-4)
33 |
34 | Instructor: @deniederhut
35 |
36 | Learn the fundamentals of unix systems, the command line, scripts, and version control.
37 |
38 | - [Unix Fundamentals](https://docs.google.com/presentation/d/1RwrP4171VsgA-cj4p9h5bfOgZ4xWzH4Op_RlXqBgIss/edit?usp=sharing)
39 | - [Git Fundamentals on GitHub](https://github.com/dlab-berkeley/git-fundamentals)
40 |
41 |
42 |
43 | ### Tuesday, August 18
44 |
45 | Instructor: @davclark
46 |
47 | - Text analysis of Hip Hop lyrics with Python
48 | - Basic operations
49 | - Working with strings (text)
50 | - Reusable code
51 | - [Click here for the class Etherpad](https://etherpad.mozilla.org/2015-08-dlab-python)
52 |
53 | Materials:
54 |
55 | - [HipHopathy](https://github.com/omoju/hiphopathy)
56 | - [NBViewer](http://nbviewer.ipython.org)
57 | - [Our Project](https://github.com/davclark/2015-05-fundamentals-hiphopathy)
58 |
59 | ### Wednesday, August 19
60 |
61 | Instructor: @marwahaha
62 |
63 | - Variables
64 | - Modules
65 | - Functions
66 | - Web-scraping
67 | - [Click here for the class Etherpad](https://etherpad.mozilla.org/2015-08-dlab-python)
68 | - Continue using resources from Tuesday!
69 |
70 |
71 | ### Thursday, August 20
72 |
73 | Instructor: @deniederhut
74 |
75 | - Containers
76 | - Loops (for and while)
77 | - Control
78 | - [APIs, Twitter, and Bots](https://github.com/deniederhut/workshop_bots)
79 | - [Click here for the class Etherpad](https://etherpad.mozilla.org/2015-08-dlab-python)
80 | - Continue using resources from Tuesday and Wednesday!
81 |
82 |
83 | ### Friday, August 21
84 |
85 | Instructor: @rdhyee
86 |
87 | - [Click here for the class Etherpad](https://etherpad.mozilla.org/2015-08-dlab-python)
88 | - Working with tabular data, standard library vs. Pandas (the [standard
89 | documentation](http://pandas.pydata.org/pandas-docs/version/0.16.1/) is a bit
90 | tough, so I'd recommend [this
91 | book](http://proquest.safaribooksonline.com/book/programming/python/9781449323592))
92 | - For plotting, the place to start is
93 | [matplotlib](http://matplotlib.org/index.html), but
94 | [Seaborn](http://stanford.edu/~mwaskom/software/seaborn/) looks nicer by
95 | default (matplotlib is also covered well in the above-mentioned
96 | [book](http://proquest.safaribooksonline.com/book/programming/python/9781449323592)).
97 | - [Scrape the web](http://docs.python-guide.org/en/latest/scenarios/scrape/)
98 | - Dav's current project to [scrape the CA Dept. of
99 | Ed.](https://github.com/davclark/LEA-scrapr)
100 | - Saving time with [NLTK](http://www.nltk.org/)
101 |
102 | ## Join The Community!
103 |
104 | We keep track of our *occasional Social Computing meetings* on our [mailing
105 | list](https://www.mail-archive.com/socialcomputing@lists.berkeley.edu) --
106 | **look in the sidebar, or above on mobile/narrow browsers.**
107 |
108 | Upcoming events, and links to our mailing list and calendar, along with our
109 | sister organization, The Hacker Within, are also available in the side bar at
110 | the right. All are welcome! Sometimes there are better resources (like [Stack
111 | Overflow](http://stackoverflow.com), or even just Google), but the Berkeley
112 | Python community is always happy to get you moving in the right direction.
113 |
--------------------------------------------------------------------------------
/trainings/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
5 |
6 | Trainings:
7 |
8 |
9 |
10 | * [D-Lab, UC Berkeley, August 2015](/trainings/2015-08-berkeley-dlab)
11 |
12 | * [D-Lab, UC Berkeley, May 2015](/trainings/2015-05-berkeley-dlab)
13 |
14 | * [D-Lab, UC Berkeley, January 2015](/trainings/2015-01-berkeley-dlab)
15 |
16 | * [D-Lab, UC Berkeley, August 2014](/trainings/2014-08-berkeley-dlab)
17 |
--------------------------------------------------------------------------------