среда, 27 декабря 2017 г.

пятница, 22 декабря 2017 г.

Конкурент firebase

 https://appcenter.ms/apps решениев  от майкрософта, дает возможность там поставить сертификаты, и забыть о боле публикации новых версий мобильных приложений в магазины с разных лептопов, выходит как ci в этом процессе.

Также дает возможность быть сервером который присылает javascript в react-native приложения, таким образом это какбы релизы без релизов в апсторы. То есть поведение приложения может меняться этими сприптами, которые приложения будут получать от сервера  https://appcenter.ms/apps

Альтернативная CI https://fastlane.tools/ , более стабильная, но требует больше настроек.


Аналитика пока на данный момент отстает от Google firebasе, но в будущем кто знает...

networksciencebook.com

Прикольная книга Ласло Барабаши (
Albert-Laszlo Barabasi)

http://networksciencebook.com/

среда, 20 декабря 2017 г.

Formulas in Web for science

https://www.mathjax.org/

вторник, 19 декабря 2017 г.

Создание web проекта на django

$ easy_install pip #утилита идет вместе с установкой python
$ pip install django==1.9
$ pip install --upgrade pip
$ django-admin startproject myprojectapi
$ mkdir src
$ mv manage.py src/
$ mv myprojectname src/
$ pip install virtualenv
$ virtualenv venv #кокретную версию python устанавливаем под конкретный проект, то же самое у дополнительными модулями
$ source ./venv/bin/activate #именно этой сессии shell устанавливаем версию python и необходимых модулей под этот проект
$ pip install djangorestframework==3.3 #делаем rest backend, которым будем обслуживать отдельное приложение для фронтенда, которое будет четко обслужено javascript&node
$ pip install django-cors-headers==1.1 #защищаемся от CORS
$ python manage.py startapp myprojectcore
$ python manage.py makemigrations myprojectcore #генерация метакода для обслуживания моделей?? вроде...)
$ python manage.py migrate 
$ python manage.py runserver # запуск wsgi сервера
$ python manage.py test
$ pip install mysql-python #драйвер для подключения к mysql
$ #отчеты после тестов хотелось бы иметь в хорошем виде, для этого ряд следующих комманад:
$ pip install django-nose #раннер для тестов
$ pip install pinocchio # набор расширений для фреймворка тестирования nose
$ pip install coverage # ну это понятно, утилита для измерения покрытия тестами кода
$ cd src
$ pip freeze > requirements.txt # сохранить текущие версии модулей зависимостей - которые требуются для работы приложения

Если есть проблема, что вируаленв нужен для python3 и он даже поставлен, но когда пытаешь пользоваться утилитой virtualenv, а она обращается к питону2, то тогда решается это так:
$ python3 -m venv venv

Вот например у нас есть файл requirements_test.txt:
-r requirements.txt
colorama==0.3.9
coverage==4.3.4
django-nose==1.4.4
nose==1.3.7
packaging==16.8
pinocchio==0.4.2

Его нужно воспринимать, что каждая строка будет выполнена так:
$ pip install -r requirements.txt
$ pip install colorama==0.3.9
$ pip install coverage==4.3.4
$ pip install django-nose==1.4.4
$ pip install nose==1.3.7
$ pip install packaging==16.8
$ pip install pinocchio==0.4.2

Чтобы пользоваться кешом, нужно его присоединить на диск:
$ time docker run --rm todobackend-dev
$ docker run -v /tmp/cache:/cache --entrypoint true --name cache todobackend-dev
$ docker ps -a
$ docker run --rm --volumes-from cache todobackend-dev

Кеш можно создавать и через docker-compose:
test:
  build: ../../
  dockerfile: docker/dev/Dockerfile
  volumes_from:
    - cache
  links:
    - db
  environment:
    DJANGO_SETTINGS_MODULE: todobackend.settings.test
    MYSQL_HOST: db
    MYSQL_USER: root
    MYSQL_PASSWORD: password
    TEST_OUTPUT_DIR: /reports

db:
  image: mysql:5.6
  hostname: db
  expose:
    - "3306"
  environment:
    MYSQL_ROOT_PASSWORD: password

cache:
    build: ../../
    dockerfile: docker/dev/Dockerfile
    volumes:
      - /tmp/cache:/cache
    entrypoint: "true"

https://caremad.io/posts/2013/07/setup-vs-requirement/