# _computational_ skateparks
> exploring the
> ## communities of practice
> of
>> ## skatepar<del>ch</del><ins>k</ins>itecture
>> > &
> #### open source
>> ## computational architecture
from util import *
import pandas, ibis
ibis.options.sql.default_limit = None
[![](https://i2.wp.com/skateboarding.transworld.net/wp-content/uploads/2018/09/best-skateparks.jpg?resize=1250%2C702&ssl=1)](https://skateboarding.transworld.net/videos/the-best-skateparks-in-the-world/)
## [Measuring a skatepark]
{{circo("size -- materials -- design -- size")}}
{{circo("{
size -- materials -- design -- size}--community
")}}
[Measuring a skatepark]: https://publicskateparkguide.org/vision/types-of-skateparks/
### The Top 6 Benefits of Public Skateparks ~to communities~
1. SKATEPARKS REDUCE ILLICIT BEHAVIOR
2. SKATEPARKS PROVIDE A SAFE ENVIRONMENT FOR SKATEBOARDING
3. SKATEPARKS REDUCE DAMAGE TO PRIVATE PROPERTY
4. SKATEBOARDING HAS SIGNIFICANT PHYSICAL HEALTH BENEFITS
5. SKATEBOARDING HAS SIGNIFICANT MENTAL HEALTH BENEFITS
6. SKATEPARKS HAVE A POSITIVE ECONOMIC IMPACT
[Benefits to communities]: https://www.spohnranch.com/the-top-6-benefits-of-public-skateparks-2014-03-02/
from tonys twitter
jupyter_parks=\
* https://pbs.twimg.com/media/EeHNcbZXoAAMUB6?format=png&name=medium
* https://pbs.twimg.com/media/EeHNuSZWoAAo8oG?format=png&name=medium
* https://pbs.twimg.com/media/EftaCNDXoAw_Y64?format=jpg&name=large
> # What do skateboards have to do with computing?
(
λ("https://www.dezeen.com/2019/02/21/11-skatepark-architecture-skateboarding-culture/")
['requests.get']
[Λ.content()]
.partial('bs4.BeautifulSoup', features="lxml")
[Λ.select("img")]
.map(Λ.attrs()['src'])
.filter(
Λ.startswith("http")
& Λ.endswith('.jpg')
).drop(1)
.take(5)
.zip(jupyter_parks)
[star.concatv()]
.map(λ.Image(format='jpg'))
.list()
[star[display]]
) + ...
>> ## Lines of code, lines in a park
What do skateboards have to do with computing?¶
(
λ("https://www.dezeen.com/2019/02/21/11-skatepark-architecture-skateboarding-culture/")
['requests.get']
[Λ.content()]
.partial('bs4.BeautifulSoup', features="lxml")
[Λ.select("img")]
.map(Λ.attrs()['src'])
.filter(
Λ.startswith("http")
& Λ.endswith('.jpg')
).drop(1)
.take(5)
.zip(jupyter_parks)
[star.concatv()]
.map(λ.Image(format='jpg'))
.list()
[star[display]]
) + ...
Lines of code, lines in a park¶
## Computational _virtual_ decentralized skateparks
{{circo("{size -- materials -- design -- size}--{{community}--software}")}}
### Software is a material
Software has {{g("size")}}, {{g("materials")}}, and {{g("design")}}.
[Measuring a skatepark]: https://publicskateparkguide.org/vision/brief-history-of-skateparks/
Software has , , and .
> ## [The ultimate goal of all art is the [ _act of_ ] building!][bauhaus]
[bauhaus]: https://bauhausmanifesto.com/
## `#deathbeds` buildings
### **using** community tools
### to **build** community tools
> ## _development depends on co-development_
>> _Jane Jacobs - The Nature of Economics_
- our traditional high-productivity collaboration spaces are on hold
- what does it look like to be building your next office, compuptationally?
development depends on co-development¶
Jane Jacobs - The Nature of Economics
## Open tools and documentation
There have been {{binder.count().execute()}} deploys on binder, or at least the binder data loaded from [binderlytics].
Using the [ibis framework][ibis] to query datasets depending on location.
try:
binder = ibis.sqlite.connect('/home/tonyfast/Downloads/binder-launches(1).db').table('binder')
except FileNotFoundError:
binder = ibis.pandas.connect({'binder': pandas.read_csv('binder-launches.csv')}).table('binder')
[sample data]
[sample data]: https://binderlytics.herokuapp.com/binder-launches/binder?_sort=rowid&org__in=tonyfast%2Cbollwyvl%2Cdeathbeds#export
[ibis]: https://www.ibis-project.org/
[binderlytics]: https://binderlytics.herokuapp.com/binder-launches/binder
There have been 9407743 deploys on binder, or at least the binder data loaded from binderlytics.
Using the ibis framework to query datasets depending on location.
try:
binder = ibis.sqlite.connect('/home/tonyfast/Downloads/binder-launches(1).db').table('binder')
except FileNotFoundError:
binder = ibis.pandas.connect({'binder': pandas.read_csv('binder-launches.csv')}).table('binder')
`#deathbeds` has been building binders and computational skateparks for quite a while.
#### What's a binder
## It's a skatepark
THIS SECTION NEEDS TO GET FILLED OUT
{{db_counts}}
orgs = binder.group_by('org provider'.split()).count().execute().dropna()
deploys = orgs.set_index('org provider'.split())['count'].unstack().fillna(0).pipe(
lambda df: df.loc[df.sum(1).sort_values(ascending=False).index]
)
df = binder[binder.org.isin("deathbeds tonyfast bollwyvl".split())].execute()
df.timestamp = df.timestamp.pipe(pandas.to_datetime)
import pandas
df.sort_values('timestamp').groupby([
'org', pandas.Grouper(freq='1M', key='timestamp')
]).sum()['version'].unstack(0).fillna(0).plot.bar(stacked=True, figsize=(18, 5), grid=True)
db_counts = deploys.loc['tonyfast bollwyvl deathbeds'.split()].pipe(lambda df: df.assign(sum=df.sum(1)))
{{toc}}
0 | 0 |
---|---|
1 | skateparks |
2 | demonstration |
3 | hyperactive-programming |
4 | demolition |
5 | dead-pixels |