Commit 1996e1e3 authored by paugier's avatar paugier

First commit

parent 8cd8481f
syntax: glob
output/*
cache/*
*~
*.pyc
*.el
*/.ipynb_checkpoints/*
PY?=python
PELICAN?=pelican
PELICANOPTS=
# python 2
# SERVERMODULE=SimpleHTTPServer
# python 3
SERVERMODULE=http.server
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
FTP_HOST=localhost
FTP_USER=anonymous
FTP_TARGET_DIR=/
SSH_HOST=localhost
SSH_PORT=22
SSH_USER=root
SSH_TARGET_DIR=$(HOME)/useful/web
S3_BUCKET=my_s3_bucket
CLOUDFILES_USERNAME=my_rackspace_username
CLOUDFILES_API_KEY=my_rackspace_api_key
CLOUDFILES_CONTAINER=my_cloudfiles_container
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
endif
help:
@echo 'Makefile for a pelican Web site'
@echo ''
@echo 'Usage:'
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make monitor Monitoring directory for changes.'
@echo ' make publish generate using production settings'
@echo ' make serve serve site at http://localhost:8000'
@echo ' make rsync_upload upload the web site via rsync '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html'
@echo ' '
clean:
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
html:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
monitor:
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
serve:
@echo 'server url: http://0.0.0.0:8000/'
cd $(OUTPUTDIR) && python3 -m $(SERVERMODULE)
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
rsync_upload: publish
rsync -P -rvzc --delete $(OUTPUTDIR)/ servwebuser.legi.grenoble-inp.fr:$(SSH_TARGET_DIR) --cvs-exclude
.PHONY: help clean monitor serve publish rsync_upload
Sources of the website of the PySciDataGre group
================================================
Get the source
--------------
Clone the repository (with `hg-git <http://hg-git.github.io/>`_)::
hg clone https://gricad-gitlab.univ-grenoble-alpes.fr/python-uga/website-pyscidatagre.git
or (with ssh)::
hg clone git@gricad-gitlab.univ-grenoble-alpes.fr:python-uga/website-pyscidatagre.git
If you like the complicated git commands and that you understand the git index
:-) you can also replace ``hg`` by ``git``.
Get help to compile and serve the website
-----------------------------------------
For help::
make help
Formations Python à l'UGA et ailleurs
=====================================
:date: 2017-12-15
:modified: 2017-12-15
:tags: Python
:category: Training
C'est parti pour 3 jours (7-9 nov. 2017) de formation sur les bases de Python à
l'UGA. En fait ce sera à l'Irstea Grenoble, mais dans le cadre de la formation
continue de l'UGA. On attend une trentaine de personnes et on sera 4 formateurs
: Cyrille Bonamy (LEGI), Eric Maldonado (Irstea), Franck Thollard (ISTERRE) et
moi.
Les documents de formation sont dans ce dépôt:
https://gricad-gitlab.univ-grenoble-alpes.fr/python-uga/py-training-2017
J'en profite pour faire de la pub pour deux autres formations :
- `Python avancé pour le calcul scientifique
<http://lyoncalcul.univ-lyon1.fr/events/2017/python/>`_ (à Lyon) qui tombe
pile en même temps que notre formation...
- `Parallel and GPU programming in Python
<https://events.prace-ri.eu/event/656/overview>`_ organisée dans le cadre de
`PRACE (Partnership for Advanced Computing in Europe)
<http://www.prace-ri.eu/>`_ à Amsterdam du 6 au 8 décembre 2017.
C'est intéressant de voir que Python devient un des langages importants du
calcul scientifique et même du HPC! A mettre en parallèle aussi avec cette
analyse sur le blog de stackoverflow : `The Incredible Growth of Python
<https://stackoverflow.blog/2017/09/06/incredible-growth-python/>`_.
Links
=====
:date: 2017-12-15
:modified: 2017-12-15
Institutions
------------
- `Université Grenoble Alpes <http://www.univ-grenoble-alpes.fr/>`_
Open-source
-----------
- `Python.org <http://python.org>`_, `Scipy <http://www.scipy.org>`_, `Cython
<http://cython.org/>`_, `Pythran
<https://github.com/serge-sans-paille/pythran>`_, ...
- `The Free Software Foundation (FSF) <http://www.fsf.org>`_ and `GNU
<https://www.gnu.org>`_
- `Debian <https://www.debian.org/>`_ and `Ubuntu <https://www.ubuntu.com/>`_
- `Pelican <http://getpelican.com/>`_ (the program used to make this site)
Training
========
:date: 2017-12-15
:modified: 2017-12-15
We organize training sessions...
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = u'Pierre Augier'
SITENAME = u"PySciDataGre group website"
# for developing (redefined in publishconf.py)
SITEURL = ''
PATH = 'content'
TIMEZONE = 'Europe/Paris'
DEFAULT_LANG = u'fr'
THEME = 'theme'
STATIC_PATHS = ['images', 'docs']
DIRECT_TEMPLATES = ('index', 'categories', 'authors', 'archives',
'publications')
# Plugins
PLUGIN_PATHS = ['plugins']
PLUGINS = []
# Feed generation is usually not desired when developing
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
# Blogroll
LINKS = (('Python.org', 'http://python.org/'),
('UGA', 'https://www.univ-grenoble-alpes.fr/'),
('CNRS', 'http://www.cnrs.fr'))
# Social widget
SOCIAL = (#('You can add links in your config file', '#'),
#('Another social link', '#'),)
)
DEFAULT_PAGINATION = False
RELATIVE_URLS = True
#TAGS_SAVE_AS = ''
#TAG_SAVE_AS = ''
PUBLICATIONS_SRC = 'content/pubs.bib'
READERS = {'html': None}
IGNORE_FILES = ['*~']
ARTICLE_EXCLUDES = ['docs/ipynbslides']
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
# This file is only used if you use `make publish` or
# explicitly specify it as your config file.
import os
import sys
sys.path.append(os.curdir)
from pelicanconf import *
SITEURL = 'http://www.'
RELATIVE_URLS = False
# FEED_ALL_ATOM = 'feeds/all.atom.xml'
# CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
DELETE_OUTPUT_DIRECTORY = True
# Following items are often useful when publishing
#DISQUS_SITENAME = ""
#GOOGLE_ANALYTICS = ""
# sober #
Pelican-sober is a very light theme focused on readability :
* Integration of [TinyTypo](http://tinytypo.tetue.net)
* Utilisation of the font Source Sans Pro
* Option to fade out sidebar to focus on article reading
This theme provides also classical features like Google Analytics, Twitter, Disqus and Pygments integration.
## Screenshot ##
![screenshot](screenshot.png)
## Sidebar options ##
* ``PELICAN_SOBER_ABOUT = "My name is Brian" `` option allows you to add a short *About* block in sidebar
* ``PELICAN_SOBER_STICKY_SIDEBAR = True | False `` option allows you to set the sidebar fixed (following scroll and fading out)
![screenshot2](screenshot2.png)
## Twitter cards ##
[Twitter card metadata](https://dev.twitter.com/docs/cards/types/summary-card) are useful to provides a better overview of your post
when a tweet point to it.
If you provide one of the two settings below, twitter card metadata will be automatically added for each post.
* ``PELICAN_SOBER_TWITTER_CARD_CREATOR = '__fle__' `` (author twitter account)
* ``PELICAN_SOBER_TWITTER_CARD_SITE = '__company__' `` (website/company twitter account)
## Credits ##
* Icons by [Jorge Calvo](http://dribbble.com/shots/1074961-Flat-Icons-EPS), slightly adapted by [Ingrid Hamard](http://ingrid.hamard.free.fr)
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(../fonts/Source-Code-Pro.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 300;
src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(../fonts/Source-Sans-Pro-Light.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url(../fonts/Source-Sans-Pro.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 600;
src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url(../fonts/Source-Sans-Pro-Light-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 300;
src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url(../fonts/Source-Sans-Pro-Light-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 400;
src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url(../fonts/Source-Sans-Pro-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 600;
src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url(../fonts/Source-Sans-Pro-Semibold-Italic.woff) format('woff');
}
/*
Colors :
- #40403F
- #4D4D4C
- #7F7F7E
- #E5E5E3
- #F0F0F0
*/
/* Imports */
@import url("fonts.css");
@import url("tinytypo.css");
@import url("pygment.css");
/* Latout */
article,
figcaption,
figure,
footer,
header,
nav,
section,
time {
display: block;
}
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
font-family: 'Source Sans Pro', sans-serif;
font-weight: 300;
font-size: 0.95em;
line-height: 150%;
text-align: left;
padding: 0;
min-width: 740px;
background: linear-gradient(0deg, #FFFFFF, #FEFEFE) repeat scroll 0% 0% transparent;
}
header {
border-top: 4px solid #4271AE;
border-bottom: 1px solid #D6D6D6;
height: 50px;
line-height: 50px;
padding: 0 1em;
margin-bottom: 1.5em;
}
.wrapper {
display: table;
width: 100%;
}
.content {
display: table-cell;
padding: 0 20px 1em 20px;
}
.sidebar {
display: table-cell;
width: 25%;
padding: 0 20px 1em 3%;
}
footer {
border-top: 1px dotted #D6D6D6;
line-height: 30px;
padding: 0 1em;
font-size: 0.8em;
}
/* Header */
header a {
border-bottom: none;
}
header a.title {
font-size: 1.25em;
}
header .feeds {
float: right;
text-align: right;
width: 25%;
line-height: 40px;
}
header .feeds a {
display: block;
float: right;
padding-right: 5px;
width: 40px;
}
header .feeds a:hover,
header .feeds a:active {
border-bottom: none;
}
header .pages {
float: right;
padding-right: 20px;
}
header .pages a {
font-size: 1.1em;
}
/* Sidebar */
#sidebar-container-fixed.sticky {
padding-bottom: 100px;
position: fixed;
top: 85px;
transition: opacity 3s ease-in-out 0s;
opacity: 0.2;
}
#sidebar-container-fixed:hover {
opacity: 1;
transition: opacity 0s ease-in-out 0s;
}
/* Titles */
h1 a {
color: inherit;
border-bottom: none;
}
/* Texts */
p {
text-align: justify;
}
a {
text-decoration: none;
border-bottom: 1px dotted #4D4D4C;
color: #4D4D4C;
}
a:hover, a:active {
text-decoration: none;
border-bottom: 1px dotted #4271AE;
color: #4271AE;
}
.literal {
border: 1px solid #F0F0F0;
padding: 0px 5px;
}
pre {
font-family: 'Source Code Pro',monospace;
background: none repeat scroll 0 0 #F0F0F0;
border-radius: 2px;
font-size: 0.9em;
font-style: normal;
letter-spacing: 0.015em;
line-height: 130%;
padding: 0.7em;
white-space: pre-wrap;
word-wrap: break-word;
}
hr {
margin: 40px 5% 60px 5%;
color: #d6d6d6;
box-shadow: 0.1em 0.1em 0.1em #EFEFEF;
border-radius: 5px;
}
/* Article */
article.summary {
margin-bottom: 40px;
clear: both;
}
article.summary > div {
margin-left: 28%;
}
article.full .metadata,
article.summary .metadata {
padding: 1%;
font-style: italic;
text-align: right;
}
article.full .metadata {
width: 25%;
float: right;
margin: 0 0 2% 1%;
}
article.summary .metadata {
width: 23%;
float: left;
margin: 0 1% 2% 0 ;
}
.metadata p,
.metadata address {
margin: 0;
text-align: right;
}
/* Listings */
ol.archive li {
margin: 8px 0;
}
ol.archive li time,
ol.archive li .tags
{
line-height: 140%;
font-size: 0.8em;
margin: 0;
}
/* Social */
.social {
list-style-type: none;
padding-left: 20px;
}
.social li {
clear: both;
}
.social a {}
.social i {
float: left;
margin-right: 3px;
padding-top: 4px;
}
.social a[href*='twitter.com'] + i:before {content: url('../images/icons/twitter-18px.png'); }
.social a[href*='linkedin.com'] + i:before {content: url('../images/icons/linkedin-18px.png'); }
.social a[href*='github.com'] + i:before {content: url('../images/icons/github-18px.png'); }
.social a[href*='google.com'] + i:before {content: url('../images/icons/google-18px.png'); }
.social a[href*='delicious.com']:before {content: url('../images/icons/delicious-18px.png'); }
.social a[href*='digg.com']:before {content: url('../images/icons/digg-18px.png'); }
.social a[href*='facebook.com']:before {content: url('../images/icons/facebook-18px.png'); }
.social a[href*='stackoverflow.com']:before {content: url('../images/icons/stackoverfow-18px.png'); }
.social a[href*='rss.xml']:before {content: url('../images/icons/feed-18px.png'); }
.social a[href*='atom.xml']:before {content: url('../images/icons/feed-18px.png'); }
/* Tag cloud */
ul.tagcloud {
list-style: none;
padding: 0;
width: 50%;
margin: 0 auto;
line-height: 200%;
}
ul.tagcloud li {
display: inline-block;
}
ul.noindent {
margin-left: 5px;
margin-right: 0px;
padding-left: 10px;
padding-right: 0px;
}
li.tag-1 { font-size: 175%; margin: 0 1em; }
li.tag-2 { font-size: 150%; margin: 0 1em; }
li.tag-3 { font-size: 125%; margin: 0 1em; }
li.tag-4 { font-size: 110%; margin: 0 1em; }
/* Pagination */
.pagination {
width: 100px;
margin: 1em auto;
}
/* Light TinyTypo overrides */
/* box border color */
.box {
border-color:#D6D6D6; /* #4271AE */
}
/* .box which contains only a list */
.box.only-list ul,
.box.only-list ol
{
margin-top: 0;
}
/* Responsive */
@media (min-width: 1280px) {
body {
margin: 0 20%;
}
}
@media (max-width: 1280px) {
body {
margin: 0 12%;
}
}
@media (max-width: 979px) {
body {
margin: 0 4%;
}
}
.hll {
background-color:#FFFFCC;
}
.c {
color:#408090;
font-style:italic;
}
.err {
border:1px solid #FF0000;
}
.k {
color:#007020;
font-weight:bold;
}
.o {
color:#666666;
}
.cm {
color:#408090;
font-style:italic;
}
.cp {
color:#007020;
}
.c1 {
color:#408090;
font-style:italic;
}
.cs {
background-color:#FFF0F0;
color:#408090;
}
.gd {
color:#A00000;
}
.ge {
font-style:italic;
}
.gr {
color:#FF0000;
}
.gh {
color:#000080;
font-weight:bold;
}
.gi {
color:#00A000;
}
.go {
color:#303030;
}
.gp {
color:#C65D09;
font-weight:bold;
}
.gs {