Add a Blog to Django project using Wagtail
In this tutorial, we'll add a blog to your Django project, using Wagtail.
After you follow this tutorial, you'll have:
1. An independent CMS admin for you to manage your blog, coexisting with your classic Django admin.
2. A standard blog using a Bootstrap theme, on a `/blog/` URL.
3. Blog posts which support Markdown and Latex syntax.
[Add a blog to your Django project, using Wagtail](https://wagtail.io/blog/add-wagtail-blog-to-django-app/)
/r/django
https://redd.it/8deohd
In this tutorial, we'll add a blog to your Django project, using Wagtail.
After you follow this tutorial, you'll have:
1. An independent CMS admin for you to manage your blog, coexisting with your classic Django admin.
2. A standard blog using a Bootstrap theme, on a `/blog/` URL.
3. Blog posts which support Markdown and Latex syntax.
[Add a blog to your Django project, using Wagtail](https://wagtail.io/blog/add-wagtail-blog-to-django-app/)
/r/django
https://redd.it/8deohd
Wagtail CMS
Add a Wagtail blog app to your Django project | Wagtail CMS
In this tutorial from guest author Michael Yin, we'll add a blog to your Django project, using Wagtail.
Beagle Scraper - open source low resource e-commerce category scraper
https://github.com/ChrisRoark/beagle_scraper
/r/Python
https://redd.it/8dfit0
https://github.com/ChrisRoark/beagle_scraper
/r/Python
https://redd.it/8dfit0
GitHub
ChrisRoark/beagle_scraper
beagle_scraper - Scraper for categories and lists on ecommerce and other listing websites
JavaScripthon 0.9 has been released
I'm pleased to announce the release of version 0.9 of JavaScripthon!
JavaScripthon is a small and unobtrusive yet powerful
Python-to-JavaScript compiler for Python 3.5+ that targets ES6+
syntax.
Changes since the previous version:
- add a --source-name options to be used together with
--inline-map when using -s;
- move main repository to gitlab.com/metapensiero;
- add support for default export and import;
- add documentation for the JS() marker function;
- refactor of the JS AST nodes;
- fix path splitting and joining on Windows (thanks to Roman Yakubuk);
There are some new contributions in this release:
- [BrainBacon](https://github.com/BrainBacon) has made a [JavaScripthon loader for WebPack](https://github.com/Beg-in/javascripthon-loader);
- [icarito](https://github.com/icarito) has contributed support for JavaScripthon to the [python-webpack-loader for WebPack](https://github.com/martim00/python-webpack-loader);
- [icarito](https://github.com/icarito) has also [integrated JavaScripthon with Nuxt.js and Vue.js](https://nuxt-python.surge.sh);
- [chfw](https://github.com/chfw) has [integrated JavaScripthon into pyecharts](https://github.com/pyecharts/pyecharts) to allow
Python function translation.
For more informations se the project homepage at https://gitlab.com/metapensiero/metapensiero.pj
It's also mirrored on github at https://github.com/metapensiero/metapensiero.pj
/r/Python
https://redd.it/8dgoct
I'm pleased to announce the release of version 0.9 of JavaScripthon!
JavaScripthon is a small and unobtrusive yet powerful
Python-to-JavaScript compiler for Python 3.5+ that targets ES6+
syntax.
Changes since the previous version:
- add a --source-name options to be used together with
--inline-map when using -s;
- move main repository to gitlab.com/metapensiero;
- add support for default export and import;
- add documentation for the JS() marker function;
- refactor of the JS AST nodes;
- fix path splitting and joining on Windows (thanks to Roman Yakubuk);
There are some new contributions in this release:
- [BrainBacon](https://github.com/BrainBacon) has made a [JavaScripthon loader for WebPack](https://github.com/Beg-in/javascripthon-loader);
- [icarito](https://github.com/icarito) has contributed support for JavaScripthon to the [python-webpack-loader for WebPack](https://github.com/martim00/python-webpack-loader);
- [icarito](https://github.com/icarito) has also [integrated JavaScripthon with Nuxt.js and Vue.js](https://nuxt-python.surge.sh);
- [chfw](https://github.com/chfw) has [integrated JavaScripthon into pyecharts](https://github.com/pyecharts/pyecharts) to allow
Python function translation.
For more informations se the project homepage at https://gitlab.com/metapensiero/metapensiero.pj
It's also mirrored on github at https://github.com/metapensiero/metapensiero.pj
/r/Python
https://redd.it/8dgoct
GitLab
metapensiero
An Azazel and Lele joint venture
Efficiently searching large databases?
One of my favorite things about databases is that you're able to search through tons of data and find things quickly, but I'm not really familiar with best practices.
On discord, there is a search feature that seems pretty comprehensive. It goes through all of the messages in a server and finds every message with the phrase given. How is this implemented? It seems like something like this might be a heavy operation if there are a lot of messages.
/r/django
https://redd.it/8dh2z0
One of my favorite things about databases is that you're able to search through tons of data and find things quickly, but I'm not really familiar with best practices.
On discord, there is a search feature that seems pretty comprehensive. It goes through all of the messages in a server and finds every message with the phrase given. How is this implemented? It seems like something like this might be a heavy operation if there are a lot of messages.
/r/django
https://redd.it/8dh2z0
reddit
Efficiently searching large databases? • r/django
One of my favorite things about databases is that you're able to search through tons of data and find things quickly, but I'm not really familiar...
Flask Live Webcast with Miguel Grinberg
Hi everyone! This Saturday at 9am US/Pacific time I will be hosting a 2nd Flask live streaming event, for those interested. The topic is going to be the Flask request and application contexts. If you ever got those obscure errors about working outside of a request or application context and did not understand what that means, I will try to solve the mystery for you, using easy to follow examples.
The webcast will be streamed on youtube at https://www.youtube.com/watch?v=Z4X5Oddhcc8.
Obviously you will be able to watch the recording later if you miss it, but the nice thing about watching it live is that you can post questions and vote on questions submitted by others. In the second portion of the webcast I will answer as many questions as I can starting from the most voted.
Hope to see you on Saturday! If you want to watch the first live stream, which I did about a month ago, it's [here](https://www.youtube.com/watch?v=fft6IvL-y1g).
/r/flask
https://redd.it/8dgro1
Hi everyone! This Saturday at 9am US/Pacific time I will be hosting a 2nd Flask live streaming event, for those interested. The topic is going to be the Flask request and application contexts. If you ever got those obscure errors about working outside of a request or application context and did not understand what that means, I will try to solve the mystery for you, using easy to follow examples.
The webcast will be streamed on youtube at https://www.youtube.com/watch?v=Z4X5Oddhcc8.
Obviously you will be able to watch the recording later if you miss it, but the nice thing about watching it live is that you can post questions and vote on questions submitted by others. In the second portion of the webcast I will answer as many questions as I can starting from the most voted.
Hope to see you on Saturday! If you want to watch the first live stream, which I did about a month ago, it's [here](https://www.youtube.com/watch?v=fft6IvL-y1g).
/r/flask
https://redd.it/8dgro1
YouTube
Flask Webcast #2: Request and Application Contexts
Join me for a live session in which I'll discuss the Flask contexts and the very confusing errors that these can cause when used incorrectly. After the session I will answer your questions and give away some books!
Is Coalesce a good practice ?
I am trying to get some statistics about my data, min, max, average etc and sometimes it's possible that there are no data to aggregate on, so the result should be 0.0
With no data aggregation returns None, so I have been doing something like below:
products.aggregate(total_profit=Coalesce(Sum("profit"), 0.0)).get("total_profit", 0.00)
Is this a good practice ?
/r/django
https://redd.it/8djdq8
I am trying to get some statistics about my data, min, max, average etc and sometimes it's possible that there are no data to aggregate on, so the result should be 0.0
With no data aggregation returns None, so I have been doing something like below:
products.aggregate(total_profit=Coalesce(Sum("profit"), 0.0)).get("total_profit", 0.00)
Is this a good practice ?
/r/django
https://redd.it/8djdq8
reddit
Is Coalesce a good practice ? • r/django
I am trying to get some statistics about my data, min, max, average etc and sometimes it's possible that there are no data to aggregate on, so the...
[template language] queryset indexing not working
hello,
here's my code
{% if entries %}
{% for entry in entries %}
<div>{{ entry }}</div>
<div>{{ entry.0 }}</div>
<div>{{ entry.1 }}</div>
{% endfor %}
{% endif %}
and here's what i'm getting
<QuerySet [<FichierCopie: FichierCopie object (1)>, <FichierCopie: FichierCopie object (2)>]>
<FichierCopie: FichierCopie object (2)>
<FichierCopie: FichierCopie object (2)>
-> entry.0 and entry.1 are giving the same element
what's is the problem here
/r/django
https://redd.it/8dl2nm
hello,
here's my code
{% if entries %}
{% for entry in entries %}
<div>{{ entry }}</div>
<div>{{ entry.0 }}</div>
<div>{{ entry.1 }}</div>
{% endfor %}
{% endif %}
and here's what i'm getting
<QuerySet [<FichierCopie: FichierCopie object (1)>, <FichierCopie: FichierCopie object (2)>]>
<FichierCopie: FichierCopie object (2)>
<FichierCopie: FichierCopie object (2)>
-> entry.0 and entry.1 are giving the same element
what's is the problem here
/r/django
https://redd.it/8dl2nm
reddit
[template language] queryset indexing not working • r/django
hello, here's my code {% if entries %} {% for entry in entries %} {{ entry }} {{ entry.0...
Advice on approach to research dashboard
Hi everyone. I'm currently working on a project, in which we're pulling from a server (json-format), based on user ids. The idea now, is to make somewhat of a research dashboard for people not familiar with python, where they can execute basic operations. Aside from actually retrieving the data and possibly converting it to a format that's more accessible (such as csv) for data-analytic purposes, I have several annotation scripts that may or not may be interesting for the researchers purpose. The dashboard's purpose, then, is to allow users to select the ids they want and export the data, and select which annotations they want to include, or load a local dataset and do annotations. My question is pretty simple: which python gui framework or other frontend method would you recommend for such an approach? I have a little experience with js on a fundamental level, that's about it.
/r/Python
https://redd.it/8dm99a
Hi everyone. I'm currently working on a project, in which we're pulling from a server (json-format), based on user ids. The idea now, is to make somewhat of a research dashboard for people not familiar with python, where they can execute basic operations. Aside from actually retrieving the data and possibly converting it to a format that's more accessible (such as csv) for data-analytic purposes, I have several annotation scripts that may or not may be interesting for the researchers purpose. The dashboard's purpose, then, is to allow users to select the ids they want and export the data, and select which annotations they want to include, or load a local dataset and do annotations. My question is pretty simple: which python gui framework or other frontend method would you recommend for such an approach? I have a little experience with js on a fundamental level, that's about it.
/r/Python
https://redd.it/8dm99a
reddit
Advice on approach to research dashboard • r/Python
Hi everyone. I'm currently working on a project, in which we're pulling from a server (json-format), based on user ids. The idea now, is to make...
Choosing VPS for relatively simple news site
Hi everyone.
What should I look for when choosing a vps for a longread-focused website? The stack is nginx+uwsgi+django+wagtail, with a few celery tasks and psql database. Would it be reasonable to expect it perform well (hold up to 1000 simultaneous users) on a setup with 4 vCPU and 8 Gb RAM? The project has no comments or other form of inter-user communication and all the content is entered through admin panel.
/r/django
https://redd.it/8dmfuu
Hi everyone.
What should I look for when choosing a vps for a longread-focused website? The stack is nginx+uwsgi+django+wagtail, with a few celery tasks and psql database. Would it be reasonable to expect it perform well (hold up to 1000 simultaneous users) on a setup with 4 vCPU and 8 Gb RAM? The project has no comments or other form of inter-user communication and all the content is entered through admin panel.
/r/django
https://redd.it/8dmfuu
reddit
Choosing VPS for relatively simple news site • r/django
Hi everyone. What should I look for when choosing a vps for a longread-focused website? The stack is nginx+uwsgi+django+wagtail, with a few...
PyTorch for Recommenders 101
http://blog.fastforwardlabs.com/2018/04/10/pytorch-for-recommenders-101.html
/r/Python
https://redd.it/8dmjgs
http://blog.fastforwardlabs.com/2018/04/10/pytorch-for-recommenders-101.html
/r/Python
https://redd.it/8dmjgs
Fastforwardlabs
PyTorch for Recommenders 101
Recommenders, generally associated with e-commerce, sift though a huge inventory of available items to find and recommend ones that a user will like. Different from search, recommenders rely on historical data to tease out user preference. How does a recommender…
"Cannot add foreign key constraint" when creating test database for tests.
I have a database that works fine, I can interact with it normally through Django. When I try to run unit tests, I use the following command:
python3 manage.py test --settings appname.settings_test
But I get the following error when creating the database:
django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
One of my tables does indeed have a foreign key relationship with another, so I'm assuming that the table with the foreign key field is being added before the table that it depends on.
How can I verify that this is the case, and how can I go about addressing this issue so that tables are executed in the correct order?
I've tried a few different fixes, such as re-ordering the apps with each model in the INSTALLED_APPS setting, but nothing I've tried has worked. Any help would be appreciated! I am happy to provide any other information!
EDIT: Full stack trace below. Note that I am deleting the old database at the beginning because I am running this command multiple times in a row, so it's deleting the failed database from my last attempt.
Creating test database for alias 'example'...
Got an error creating the test database: (1007, "Can't create database 'test_example'; database exists")
Type 'yes' if you would like to try deleting the test database 'test_example', or 'no' to cancel: yes
Destroying old test database for alias 'example'...
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1215, 'Cannot add foreign key constraint')
/r/django
https://redd.it/8dofs3
I have a database that works fine, I can interact with it normally through Django. When I try to run unit tests, I use the following command:
python3 manage.py test --settings appname.settings_test
But I get the following error when creating the database:
django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
One of my tables does indeed have a foreign key relationship with another, so I'm assuming that the table with the foreign key field is being added before the table that it depends on.
How can I verify that this is the case, and how can I go about addressing this issue so that tables are executed in the correct order?
I've tried a few different fixes, such as re-ordering the apps with each model in the INSTALLED_APPS setting, but nothing I've tried has worked. Any help would be appreciated! I am happy to provide any other information!
EDIT: Full stack trace below. Note that I am deleting the old database at the beginning because I am running this command multiple times in a row, so it's deleting the failed database from my last attempt.
Creating test database for alias 'example'...
Got an error creating the test database: (1007, "Can't create database 'test_example'; database exists")
Type 'yes' if you would like to try deleting the test database 'test_example', or 'no' to cancel: yes
Destroying old test database for alias 'example'...
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 247, in execute
res = self._query(query)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 411, in _query
rowcount = self._do_query(q)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/cursors.py", line 374, in _do_query
db.query(q)
File "/usr/local/lib/python3.5/dist-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1215, 'Cannot add foreign key constraint')
/r/django
https://redd.it/8dofs3
reddit
"Cannot add foreign key constraint" when creating test... • r/django
I have a database that works fine, I can interact with it normally through Django. When I try to run unit tests, I use the following command: ...
Plot real-time sensor data on a map
I have real-time sensor gps-data (comes from a Kafka consumer) and want to live-track them on a map. Can folium / jupyter-gmaps do that without permanently updating the map in the background? Ideally can I use ipywidgets with those libraries too to build interactive maps?
/r/IPython
https://redd.it/8dozey
I have real-time sensor gps-data (comes from a Kafka consumer) and want to live-track them on a map. Can folium / jupyter-gmaps do that without permanently updating the map in the background? Ideally can I use ipywidgets with those libraries too to build interactive maps?
/r/IPython
https://redd.it/8dozey
reddit
Plot real-time sensor data on a map • r/IPython
I have real-time sensor gps-data (comes from a Kafka consumer) and want to live-track them on a map. Can folium / jupyter-gmaps do that without...
Need help for a RSS feeder app
I'm very new to django and I want to build an RSS and screen-scraping app that will automatically check the feed using crontab and puts the feed in my database. Later I want to show the feed on the website. I know there are few pre build apps like planet but they are outdated and I wanna make it in django 2.0. Am I going in a right direction? Please feel free to leave any suggestion you have
/r/django
https://redd.it/8dn7hv
I'm very new to django and I want to build an RSS and screen-scraping app that will automatically check the feed using crontab and puts the feed in my database. Later I want to show the feed on the website. I know there are few pre build apps like planet but they are outdated and I wanna make it in django 2.0. Am I going in a right direction? Please feel free to leave any suggestion you have
/r/django
https://redd.it/8dn7hv
reddit
Need help for a RSS feeder app • r/django
I'm very new to django and I want to build an RSS and screen-scraping app that will automatically check the feed using crontab and puts the feed...
Validator-Collection / What's your validator wishlist?
Hi Folks!
We just released a [Validator-Collection](https://github.com/insightindustry/validator-collection) library, where v.1.0 supports 60+ of the most common validation approaches we tend to use "in the wild". Here's direct link: https://github.com/insightindustry/validator-collection
We built the collection with the validations that we find ourselves using most often in our projects, so it's got all of the usual suspects (email, URLs, UUID, etc.). But now that we've released v.1.0 of the library, I'm hoping to find out: What kinds of validation do you use most often?
We're thinking of extending the library with image validation (type, size, etc.), configurable password pattern validation, and the like. We'd probably implement them using an extras-requires pattern (that way users of the library who don't want to install heavy image dependencies don't have to).
So I've got two questions for folks:
1. What kinds of validations do you find yourself using most often? What kinds of validations would you find most helpful?
2. Philosophically, how do you feel about a library that uses the extras-require pattern for dependency management?
Meaning, typical installation (no dependencies outside of the standard library, unless on Python 2.7):
pip install validator-collection
(does not include image validation support)
But if you DO want image support, installation using:
pip install validator-collection[images]
Thanks - I look forward to hearing (reading) your thoughts!
(also, FWIW: I'm sensitive to the perennial debate about LBYL and EAFP - philosophically, we've designed the library's API to support both approaches...with luck, we've done a good job balancing between the two).
All the best,
Chris
/r/Python
https://redd.it/8dp4g3
Hi Folks!
We just released a [Validator-Collection](https://github.com/insightindustry/validator-collection) library, where v.1.0 supports 60+ of the most common validation approaches we tend to use "in the wild". Here's direct link: https://github.com/insightindustry/validator-collection
We built the collection with the validations that we find ourselves using most often in our projects, so it's got all of the usual suspects (email, URLs, UUID, etc.). But now that we've released v.1.0 of the library, I'm hoping to find out: What kinds of validation do you use most often?
We're thinking of extending the library with image validation (type, size, etc.), configurable password pattern validation, and the like. We'd probably implement them using an extras-requires pattern (that way users of the library who don't want to install heavy image dependencies don't have to).
So I've got two questions for folks:
1. What kinds of validations do you find yourself using most often? What kinds of validations would you find most helpful?
2. Philosophically, how do you feel about a library that uses the extras-require pattern for dependency management?
Meaning, typical installation (no dependencies outside of the standard library, unless on Python 2.7):
pip install validator-collection
(does not include image validation support)
But if you DO want image support, installation using:
pip install validator-collection[images]
Thanks - I look forward to hearing (reading) your thoughts!
(also, FWIW: I'm sensitive to the perennial debate about LBYL and EAFP - philosophically, we've designed the library's API to support both approaches...with luck, we've done a good job balancing between the two).
All the best,
Chris
/r/Python
https://redd.it/8dp4g3
GitHub
GitHub - insightindustry/validator-collection: Python library of 60+ commonly-used validator functions
Python library of 60+ commonly-used validator functions - GitHub - insightindustry/validator-collection: Python library of 60+ commonly-used validator functions
Flask-YoloAPI 0.1.3 released
I released Flask-YoloAPI version `0.1.3`.
https://github.com/skftn/flask-yoloapi
It allows you to create Flask routes with refined requirements, such as;
- quickly create safe routes by enforcing input/type validation
- coercing of data types
- support for many datatypes
- understands docstrings
- support for python 3.5 type annotations
- custom validation via the `validator=` flag
This library embodies the philosophy of Flask; 'micro web-development'. Quick and easy route creation where you don't need many bells and whistles, yet, you can be very descriptive and strict about what comes into your route.
It is already used in production for the past 6 months under heavy load and works fine. It features a test-suite with 90%+ coverage.
Suggestions welcome, as always.
/r/flask
https://redd.it/8dmgfx
I released Flask-YoloAPI version `0.1.3`.
https://github.com/skftn/flask-yoloapi
It allows you to create Flask routes with refined requirements, such as;
- quickly create safe routes by enforcing input/type validation
- coercing of data types
- support for many datatypes
- understands docstrings
- support for python 3.5 type annotations
- custom validation via the `validator=` flag
This library embodies the philosophy of Flask; 'micro web-development'. Quick and easy route creation where you don't need many bells and whistles, yet, you can be very descriptive and strict about what comes into your route.
It is already used in production for the past 6 months under heavy load and works fine. It features a test-suite with 90%+ coverage.
Suggestions welcome, as always.
/r/flask
https://redd.it/8dmgfx
GitHub
skftn/flask-yoloapi
flask-yoloapi - A small framework for creating simple JSON endpoints.
Simplru - A backport of Python 3 LRU Cache functionality for Python 2
https://github.com/mostafa/simplru
/r/Python
https://redd.it/8dqdim
https://github.com/mostafa/simplru
/r/Python
https://redd.it/8dqdim
GitHub
mostafa/simplru
A backport of Python 3 LRU Cache functionality for Python 2 - mostafa/simplru
I've compiled some unit testing tips, gotchas, etc. Would love some feedback, and I welcome any suggestions or additions.
https://howchoo.com/g/owy4mzvhn2n/unit-testing-in-python-tips-tricks-and-gotchas
/r/Python
https://redd.it/8drs5b
https://howchoo.com/g/owy4mzvhn2n/unit-testing-in-python-tips-tricks-and-gotchas
/r/Python
https://redd.it/8drs5b
howchoo
Unit Testing in Python: Tips, Tricks, and Gotchas
I'll be honest - this guide is primarily a reference for future me. Unit testing is something I want to improve on, and I find myself searching for the same things over and over. So here I will compile a list of tips, tricks, and gotchas - things that will…
Build Your Own Photo Sharing App In 5 minutes With Django and React Native
https://github.com/yasintoy/vecihi
/r/Python
https://redd.it/8dowex
https://github.com/yasintoy/vecihi
/r/Python
https://redd.it/8dowex
GitHub
GitHub - yasintoy/Vecihi: Build Your Own Photo Sharing App in 5 minutes
Build Your Own Photo Sharing App in 5 minutes. Contribute to yasintoy/Vecihi development by creating an account on GitHub.