IT人在工廠日記 – 大陸終於有第一次的台風假期

大陸終於有第一次的台風假期,全廣東省於2016年8月2日放假一天,它通過電訊商發放資訊,認真是一進步。

中央氣象台消息,台風“妮妲”於2016年8月2日淩晨到上午在廣東汕尾到陽江一帶沿海登陸,預計登陸強度為台風級或強台風級,風速可達每秒40米至48米,風力可達13級至15級。受“妮妲”影響,8月1日至4日,華南大部、貴州南部、雲南東南部等地自東向西先後有暴雨到大暴雨,珠三角附近局地有特大暴雨。

How to setup python 2.7 and 3.5 under same computer

Introduction

Conda treats Python the same as any other package, so it’s very easy to manage and update multiple python installations under one computer. For instance, if you want to install different version of python in the same window env but without wipe out the current version of python, you can create and activate a new virtual environment with specific name and install your required version of Python as follows instruction.

Install Python 3.5 under Python 2.7

1. install new python with command:       $ conda create -n py35 python=3.5 anaconda
2. activate the new setup python with command:    $ activate py35
3. deactivate with command: $ deactivate

4. Remove the created env: $ conda remove –name py35 –all

Install Python 2.7 under Python 3.5

1. install new python with command:       $ conda create -n py27 python=2.7 anaconda
2. activate the new setup python with command:    $ activate py27
3. deactivate with command: $ deactivate

Screen Dump of Deinstallation and Installation as below:

C:Usergoldmanau>conda create -n py27 python=2.7 anaconda
Fetching package metadata: ….
Solving package specifications: ………………………….
Package plan for installation in environment C:UsersgoldmanauAppDataLocalCo
ntinuumAnaconda3envspy27:The following packages will be downloaded:

package                    |            build
—————————|—————–
pandas-0.18.1              |      np111py27_0         7.0 MB  defaults
pickleshare-0.7.2          |           py27_0           9 KB  defaults
pytables-3.2.2             |      np111py27_4         1.5 MB  defaults
scikit-learn-0.17.1        |      np111py27_1         3.5 MB  defaults
sphinx-1.4.1               |           py27_0         1.3 MB  defaults
tornado-4.3                |           py27_1         543 KB  defaults
anaconda-navigator-1.2.1   |           py27_0         1.3 MB  defaults
bokeh-0.11.1               |           py27_0         3.1 MB  defaults
flask-cors-2.1.2           |           py27_0          15 KB  defaults
ipython-4.2.0              |           py27_0         981 KB  defaults
jupyter_client-4.3.0       |           py27_0         138 KB  defaults
nbformat-4.0.1             |           py27_0         155 KB  defaults
odo-0.5.0                  |           py27_0         216 KB  defaults
pyopenssl-0.16.0           |           py27_0          66 KB  defaults
scikit-image-0.12.3        |      np111py27_1        17.6 MB  defaults
sockjs-tornado-1.0.3       |           py27_0          32 KB  defaults
statsmodels-0.6.1          |      np111py27_1         4.6 MB  defaults
dask-0.10.0                |           py27_0         525 KB  defaults
ipykernel-4.3.1            |           py27_0         117 KB  defaults
nbconvert-4.2.0            |           py27_0         354 KB  defaults
jupyter_console-4.1.1      |           py27_0          65 KB  defaults
notebook-4.2.1             |           py27_0         5.2 MB  defaults
qtconsole-4.2.1            |           py27_0         203 KB  defaults
ipywidgets-4.1.1           |           py27_0          98 KB  defaults
nb_anacondacloud-1.1.0     |           py27_0          20 KB  defaults
nb_conda_kernels-1.0.3     |           py27_0          28 KB  defaults
nbpresent-3.0.2            |           py27_0         512 KB  defaults
spyder-2.3.9               |           py27_0         2.1 MB  defaults
jupyter-1.0.0              |           py27_3           3 KB  defaults
nb_conda-1.1.0             |           py27_0          25 KB  defaults
_nb_ext_conf-0.2.0         |           py27_0          912 B  defaults
anaconda-4.1.0             |      np111py27_0          16 KB  defaults
————————————————————
Total:        51.2 MB

The following NEW packages will be INSTALLED:

_nb_ext_conf:       0.2.0-py27_0       defaults
alabaster:          0.7.8-py27_0       defaults
anaconda:           4.1.0-np111py27_0  defaults
anaconda-client:    1.4.0-py27_0       defaults
anaconda-navigator: 1.2.1-py27_0       defaults
argcomplete:        1.0.0-py27_1       defaults
astropy:            1.2.1-np111py27_0  defaults
babel:              2.3.3-py27_0       defaults
backports:          1.0-py27_0         defaults
backports_abc:      0.4-py27_0         defaults
beautifulsoup4:     4.4.1-py27_0       defaults
bitarray:           0.8.1-py27_1       defaults
bokeh:              0.11.1-py27_0      defaults
boto:               2.40.0-py27_0      defaults
bottleneck:         1.0.0-np111py27_1  defaults
bzip2:              1.0.6-vc9_3        defaults [vc9]
cdecimal:           2.3-py27_2         defaults
cffi:               1.6.0-py27_0       defaults
chest:              0.2.3-py27_0       defaults
click:              6.6-py27_0         defaults
cloudpickle:        0.2.1-py27_0       defaults
clyent:             1.2.2-py27_0       defaults
colorama:           0.3.7-py27_0       defaults
comtypes:           1.1.2-py27_0       defaults
configobj:          5.0.6-py27_0       defaults
configparser:       3.5.0b2-py27_1     defaults
console_shortcut:   0.1.1-py27_1       defaults
contextlib2:        0.5.3-py27_0       defaults
cryptography:       1.4-py27_0         defaults
curl:               7.49.0-vc9_0       defaults [vc9]
cycler:             0.10.0-py27_0      defaults
cython:             0.24-py27_0        defaults
cytoolz:            0.8.0-py27_0       defaults
dask:               0.10.0-py27_0      defaults
datashape:          0.5.2-py27_0       defaults
decorator:          4.0.10-py27_0      defaults
dill:               0.2.5-py27_0       defaults
docutils:           0.12-py27_2        defaults
entrypoints:        0.2.2-py27_0       defaults
enum34:             1.1.6-py27_0       defaults
et_xmlfile:         1.0.1-py27_0       defaults
fastcache:          1.0.2-py27_1       defaults
flask:              0.11.1-py27_0      defaults
flask-cors:         2.1.2-py27_0       defaults
freetype:           2.5.5-vc9_1        defaults [vc9]
funcsigs:           1.0.2-py27_0       defaults
functools32:        3.2.3.2-py27_0     defaults
futures:            3.0.5-py27_0       defaults
get_terminal_size:  1.0.0-py27_0       defaults
gevent:             1.1.1-py27_0       defaults
greenlet:           0.4.10-py27_0      defaults
grin:               1.2.1-py27_3       defaults
h5py:               2.6.0-np111py27_0  defaults
hdf5:               1.8.15.1-vc9_4     defaults [vc9]
heapdict:           1.0.0-py27_1       defaults
idna:               2.1-py27_0         defaults
imagesize:          0.7.1-py27_0       defaults
ipaddress:          1.0.16-py27_0      defaults
ipykernel:          4.3.1-py27_0       defaults
ipython:            4.2.0-py27_0       defaults
ipython_genutils:   0.1.0-py27_0       defaults
ipywidgets:         4.1.1-py27_0       defaults
itsdangerous:       0.24-py27_0        defaults
jdcal:              1.2-py27_1         defaults
jedi:               0.9.0-py27_1       defaults
jinja2:             2.8-py27_1         defaults
jpeg:               8d-vc9_0           defaults [vc9]
jsonschema:         2.5.1-py27_0       defaults
jupyter:            1.0.0-py27_3       defaults
jupyter_client:     4.3.0-py27_0       defaults
jupyter_console:    4.1.1-py27_0       defaults
jupyter_core:       4.1.0-py27_0       defaults
libpng:             1.6.22-vc9_0       defaults [vc9]
libtiff:            4.0.6-vc9_2        defaults [vc9]
llvmlite:           0.11.0-py27_0      defaults
locket:             0.2.0-py27_1       defaults
lxml:               3.6.0-py27_0       defaults
markupsafe:         0.23-py27_2        defaults
matplotlib:         1.5.1-np111py27_0  defaults
menuinst:           1.4.1-py27_0       defaults
mistune:            0.7.2-py27_0       defaults
mkl:                11.3.3-1           defaults
mkl-service:        1.1.2-py27_2       defaults
mpmath:             0.19-py27_1        defaults
multipledispatch:   0.4.8-py27_0       defaults
nb_anacondacloud:   1.1.0-py27_0       defaults
nb_conda:           1.1.0-py27_0       defaults
nb_conda_kernels:   1.0.3-py27_0       defaults
nbconvert:          4.2.0-py27_0       defaults
nbformat:           4.0.1-py27_0       defaults
nbpresent:          3.0.2-py27_0       defaults
networkx:           1.11-py27_0        defaults
nltk:               3.2.1-py27_0       defaults
nose:               1.3.7-py27_1       defaults
notebook:           4.2.1-py27_0       defaults
numba:              0.26.0-np111py27_0 defaults
numexpr:            2.6.0-np111py27_0  defaults
numpy:              1.11.0-py27_2      defaults
odo:                0.5.0-py27_0       defaults
openpyxl:           2.3.2-py27_0       defaults
openssl:            1.0.2h-vc9_0       defaults [vc9]
pandas:             0.18.1-np111py27_0 defaults
partd:              0.3.4-py27_0       defaults
path.py:            8.2.1-py27_0       defaults
pathlib2:           2.1.0-py27_0       defaults
patsy:              0.4.1-py27_0       defaults
pep8:               1.7.0-py27_0       defaults
pickleshare:        0.7.2-py27_0       defaults
pillow:             3.2.0-py27_1       defaults
pip:                8.1.2-py27_0       defaults
ply:                3.8-py27_0         defaults
psutil:             4.3.0-py27_0       defaults
py:                 1.4.31-py27_0      defaults
pyasn1:             0.1.9-py27_0       defaults
pycosat:            0.6.1-py27_1       defaults
pycparser:          2.14-py27_1        defaults
pycrypto:           2.6.1-py27_4       defaults
pycurl:             7.43.0-py27_0      defaults
pyflakes:           1.2.3-py27_0       defaults
pygments:           2.1.3-py27_0       defaults
pyopenssl:          0.16.0-py27_0      defaults
pyparsing:          2.1.4-py27_0       defaults
pyqt:               4.11.4-py27_6      defaults
pyreadline:         2.1-py27_0         defaults
pytables:           3.2.2-np111py27_4  defaults
pytest:             2.9.2-py27_0       defaults
python:             2.7.11-5           defaults
python-dateutil:    2.5.3-py27_0       defaults
pytz:               2016.4-py27_0      defaults
pywin32:            220-py27_1         defaults
pyyaml:             3.11-py27_4        defaults
pyzmq:              15.2.0-py27_0      defaults
qt:                 4.8.7-vc9_8        defaults [vc9]
qtconsole:          4.2.1-py27_0       defaults
qtpy:               1.0.2-py27_0       defaults
requests:           2.10.0-py27_0      defaults
rope:               0.9.4-py27_1       defaults
ruamel_yaml:        0.11.7-py27_0      defaults
scikit-image:       0.12.3-np111py27_1 defaults
scikit-learn:       0.17.1-np111py27_1 defaults
scipy:              0.17.1-np111py27_1 defaults
setuptools:         23.0.0-py27_0      defaults
simplegeneric:      0.8.1-py27_1       defaults
singledispatch:     3.4.0.3-py27_0     defaults
sip:                4.16.9-py27_2      defaults
six:                1.10.0-py27_0      defaults
snowballstemmer:    1.2.1-py27_0       defaults
sockjs-tornado:     1.0.3-py27_0       defaults
sphinx:             1.4.1-py27_0       defaults
sphinx_rtd_theme:   0.1.9-py27_0       defaults
spyder:             2.3.9-py27_0       defaults
sqlalchemy:         1.0.13-py27_0      defaults
ssl_match_hostname: 3.4.0.2-py27_1     defaults
statsmodels:        0.6.1-np111py27_1  defaults
sympy:              1.0-py27_0         defaults
tk:                 8.5.18-vc9_0       defaults [vc9]
toolz:              0.8.0-py27_0       defaults
tornado:            4.3-py27_1         defaults
traitlets:          4.2.1-py27_0       defaults
unicodecsv:         0.14.1-py27_0      defaults
vs2008_runtime:     9.00.30729.1-2     defaults
werkzeug:           0.11.10-py27_0     defaults
wheel:              0.29.0-py27_0      defaults
xlrd:               1.0.0-py27_0       defaults
xlsxwriter:         0.9.2-py27_0       defaults
xlwings:            0.7.2-py27_0       defaults
xlwt:               1.1.2-py27_0       defaults
zlib:               1.2.8-vc9_3        defaults [vc9]

Proceed ([y]/n)? y

Fetching packages …
pandas-0.18.1- 100% |###############################| Time: 0:01:17  94.50 kB/s
pickleshare-0. 100% |###############################| Time: 0:00:00   1.48 MB/s
pytables-3.2.2 100% |###############################| Time: 0:00:15 101.08 kB/s
scikit-learn-0 100% |###############################| Time: 0:00:35 103.10 kB/s
sphinx-1.4.1-p 100% |###############################| Time: 0:00:15  88.76 kB/s
tornado-4.3-py 100% |###############################| Time: 0:00:04 112.43 kB/s
anaconda-navig 100% |###############################| Time: 0:00:13 103.67 kB/s
bokeh-0.11.1-p 100% |###############################| Time: 0:00:38  83.75 kB/s
flask-cors-2.1 100% |###############################| Time: 0:00:00  33.06 kB/s
ipython-4.2.0- 100% |###############################| Time: 0:00:09 106.52 kB/s
jupyter_client 100% |###############################| Time: 0:00:02  61.09 kB/s
nbformat-4.0.1 100% |###############################| Time: 0:00:01  89.78 kB/s
odo-0.5.0-py27 100% |###############################| Time: 0:00:02  76.72 kB/s
pyopenssl-0.16 100% |###############################| Time: 0:00:01  55.44 kB/s
scikit-image-0 100% |###############################| Time: 0:03:35  85.86 kB/s
sockjs-tornado 100% |###############################| Time: 0:00:00  66.93 kB/s
statsmodels-0. 100% |###############################| Time: 0:00:51  92.79 kB/s
dask-0.10.0-py 100% |###############################| Time: 0:00:06  84.35 kB/s
ipykernel-4.3. 100% |###############################| Time: 0:00:01  66.01 kB/s
nbconvert-4.2. 100% |###############################| Time: 0:00:05  68.28 kB/s
jupyter_consol 100% |###############################| Time: 0:00:01  45.59 kB/s
notebook-4.2.1 100% |###############################| Time: 0:00:53 100.82 kB/s
qtconsole-4.2. 100% |###############################| Time: 0:00:02  72.55 kB/s
ipywidgets-4.1 100% |###############################| Time: 0:00:01  86.14 kB/s
nb_anacondaclo 100% |###############################| Time: 0:00:00  37.88 kB/s
nb_conda_kerne 100% |###############################| Time: 0:00:00  67.10 kB/s
nbpresent-3.0. 100% |###############################| Time: 0:00:04 112.47 kB/s
spyder-2.3.9-p 100% |###############################| Time: 0:00:26  81.65 kB/s
jupyter-1.0.0- 100% |###############################| Time: 0:00:00   0.00  B/s
nb_conda-1.1.0 100% |###############################| Time: 0:00:00  61.82 kB/s
_nb_ext_conf-0 100% |###############################| Time: 0:00:00   0.00  B/s
anaconda-4.1.0 100% |###############################| Time: 0:00:00  40.15 kB/s
Extracting packages …
[      COMPLETE      ]|##################################################| 100%
Linking packages …
1 file(s) copied.####################                            |  44%
[      COMPLETE      ]|##################################################| 100%
#
# To activate this environment, use:
# > activate py27

C:Usersgoldmanau>conda remove  –name py27 –all
Fetching package metadata: ….Package plan for package removal in environment C:UsersgoldmanauAppDataLocal
ContinuumAnaconda3envspy27:

The following packages will be REMOVED:

menuinst: 1.4.1-py27_0 defaults

Proceed ([y]/n)? y

 

Reference Doc Link

http://conda.pydata.org/docs/py2or3.html

网络安全稽核工作(Network Security Auditing Work)

安全稽核工作

1.定期对公司系统软件进行渗透测试模拟攻击,及时发现系统安全漏洞,反馈给相关部门
2.利用自主开发的epa软件时行网络监控,对网络违规行为及时制止(如:私自安装与工作无关聊天软件等)
3.对外发邮件进行稽核,特别是外发apk是否含有公司机密文件
4.物理环境稽核,如:私自搭建wifi,各种网络设备规范连接等
5.权限与安全意识稽核,如:账号权限与使用,违规操作等
6.撰写公司各种安全条例规范及安全策略

网络维护,日常管理,调查安全事件,支持及参与公司系统开发,维护及应用;对系统/程序进行测试,以确保整体系统的高品质运作;支持系统的实施及支援;统整有关系统文档

Installation of an Open Source Prometeo-ERP System

Introduction

Although Prometeo-ERP System was a phase-out project for any further development, its follow-up project was Django-ERP. However, Django-ERP is still under development, Its function is not ready, and most features are not ready for public use at this moment. Then, I step back to continue to test Prometeo-ERP System. Prometeo-ERP has already provide many useful features, its public release free version had the following features:

  • Authentication & row-level permission system
  • Notification system
  • Custom widgets & dashboards
  • Taxonomy system
  • File browsing
  • Event calendar
  • User tasks & timesheets
  • CRM (Customer Relationship Management)
  • Products management
  • Stock management
  • Human resources management
  • Sales management
  • Project management
  • Knowledge management
  • DMS (Document Management System)

I installed the Prometeo-ERP system to my Raspberry Pi machine, i.e. free OS, free program tools, free application tools, … Great. It is still worth to study it, and I will show the installation installation in the following

Installation Steps:

1. Checkout sources from the GIT repository:

https://code.google.com/archive/p/prometeo-erp/

2. Follow the instructions in the README file as reference.

2.1 PREREQUISITES

Make sure you have the following prerequisites installed:

* python >= 2.6 (or 2.7 the public one)

$ pip install python==2.7

* pytz >= 2011h (required)
$ pip install pytz==2011h

* python-markdown >= 2.0 (required)
$ pip install markdown

* xhtml2pdf >= 0.0.3 (required)
$ pip install xhtml2pdf==0.0.3

* icalendar >= 2.2 (required)
$ pip install icalendar==2.2

* django >= 1.3.1 (required)
$ pip install django==1.3.1

* south >= 0.7.3 (optional)
$ pip install south

2.2 INSTALLATION
1. Rename the download folder to “prometeo” (It is necessary).

2. cp settings/base.py.tmpl settings/base.py, and edit several statement as below:

$ vi settings/base.py
….

ADMINS = (
# (‘Goldman’, ‘goldman.au168@gmail.com’),
)

MANAGERS = ADMINS

DATABASES = {
default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’, # Add ‘postgresql_psycopg2’, ‘postgresql’, ‘mysql’, ‘sqlite3’ or ‘oracle’.
‘NAME’: ‘erp.db’, # Or path to database file if using sqlite3.
‘USER’: ”, # Not used with sqlite3.
‘PASSWORD’: ”, # Not used with sqlite3.
‘HOST’: ”, # Set to empty string for localhost. Not used with sqlite3.
‘PORT’: ”, # Set to empty string for default. Not used with sqlite3.
}

}

LANGUAGE_CODE = ‘en-us’

# List of installed applications.
INSTALLED_APPS = (
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.sites’,
‘django.contrib.messages’,
‘django.contrib.admin’,
‘django.contrib.admindocs’,
‘django.contrib.comments’,
‘django.contrib.markup’,
‘django.contrib.redirects’,
‘django.contrib.staticfiles’,

#’south’,

‘prometeo.core’,
‘prometeo.core.filebrowser’,
‘prometeo.core.widgets’,
‘prometeo.core.menus’,
‘prometeo.core.taxonomy’,
‘prometeo.core.auth’,
‘prometeo.core.registration’,
‘prometeo.core.notifications’,
‘prometeo.core.calendar’,

‘prometeo.todo’,
‘prometeo.addressing’,
‘prometeo.partners’,
‘prometeo.documents’,
‘prometeo.products’,
‘prometeo.stock’,
‘prometeo.hr’,
‘prometeo.sales’,
‘prometeo.projects’,
‘prometeo.knowledge’,
)

3. It’s time to create the DB schema

$ python manage.py syncdb

4. Start the server:

$ python manage.py runserver

5. Test the application via link http://localhost:8000 as screen dump below:

prometeo-system

 

Setup Raspberry pi Car camera with Android phone WiFi

Introduction

Raspberry Pi can be widely used for Car computer with many features, such as plays DVDs, GPS, displays TV, Bluetooth (phone calls + music), MP3/MPEG4 player, CD/radio, car camera, reversing camera (comes on automatically when I put the car in reverse gear), etc. This week, I test raspberry pi to connect to android phone’s wireless hotpot, and setup camera and display feature as below. It is interesting.

Connect Raspberry Pi to an Android phone’s camera

Step 1. Install Pi Camera Application in Android Phone, which you can find many from Google Play Store as below screen:

ipcam-app

Step 2. Turn on the Android Phone’s Camera Application and active its web server feature, then it will display an ip address for your external browse connection.

Step 3. Turn on the Android Phone’s wireless sharing hotpot feature, then the ip address will be refresh to its own phone address for your external connection as below:

Step 4. Connect the Raspberry Pi to Android Phone Open the browser in your Raspberry Pi, and type in the ip address, then it will display the camera as below:

ipcam-display

Screen Dump of Another Scene of Camera and Display as below two pictures:

cam-phone-display

cam-pi-diaplay

 

Display Raspberry Pi Camera to Android phone

Step 1. Install Raspberry Pi Camera and vlc software as describe in my previous post “Installation of Raspberry Pi Camera

Step 2. Start the video streaming function with command:

$ raspivid -w 640 -h 480 -o – -t 9999999 |cvlc -vvv stream:///dev/stdin –sout ‘#standard{access=http,mux=ts,dst=:8554}’ :demux=h264

Step 3. We can connect via browser with link http://ip-address:8554/.

Bonus:

We can also use VNC to connect Raspberry Pi from Android Phone, provided that you start the VNC server function (as described in my previous post “Installation Raspberry Pi” Step 6, and then install VNC app from Google Play Store, and start VNC connection in Andriod Phone as below:

VNC-1                   VNC-2

 

 

 

淺談工業 4.0

工業 1.0、2.0、3.0 時代

互聯網發展至今可分為四個時代(參考此文),工業發展也可分為四個匙時代,四次工業革命。第一次工業革命是利用水力及蒸汽的力量作為動力源,第二次工業革命则使用电力为非常出名的大量生产提供動力與支持,第三次工業革命則是使用电子设备及資訊技術(IT)來校除人為影響以增進工業制造的自動化。

industiral-4.0a

工業 4.0 時代

時至今日,到了工业4.0時代,工業4.0(Industry 4.0、Industrie 4.0)或稱第四次工業革命(Fourth industrial revolution)、生產力4.0,是一個德国政府提出的高科技計劃,由德國聯邦教育及研究部和聯邦經濟及科技部联合资助,投资预计达 2 亿欧元,用來提昇製造業的電腦化、數位化和智能化。目標與以前不同,不是創造新的工業技術,而是將所有工業相關的技術、銷售與產品體驗統合起來,是建立具有適應性、資源效率和人因工程学的智慧工廠(Smart Factory),並在商業流程及價值流程中整合客戶以及商業伙伴。其技術基礎是智慧整合感控系統(Cyber-Physical System, CPS)及物联网(Internet of Things, IoT)。這樣的架構雖然還在摸索,但如果得以陸續成真並應用,最終將能建構出一個有感知意識的新型智能工業世界,能透過分析各種大數據, 直接生成滿足客戶的相關解決方案產品(需求客製化),更可利用電腦預測部分固有狀況,例如天氣預測、公共交通、市場調查數據等等,及時精準生產或調度現有 資源、減少多餘成本與浪費等等(供應端優化),需要注意的是工業只是這個智慧世界的一個部件,需要以“工業如何適應智慧網絡下的未來生活”去理解才不會搞 混工業的種種概念。

《中國製造2025》計畫

在德國推出工業4.0之後,美國、日本和中國都在積極追趕。「中國經濟發展已進入新常態,製造業必須要從價值鏈低端向中高端升級…我們要研究,到底該以什麼戰略應對新一輪發展,如何實現製造業由『大』變『強』。」中國工業與信息化部部長苗圩對人民日報說。為中國製造業力拼轉型,因此中國國務院最近還頒布《中國製造2025》計畫,引起全世界的注意。這個計劃準備全面推動製造強國戰略,目標成為和歐美並駕齊驅的先進製造強國。這個計畫以機械設備、工業自動化/智慧化和機器人為重心。

中國已經成為世界工廠、製造業「大國」,但是大部分還是以代工為主,技術水準低、產品品質差、利潤低,處在全球產業鏈的底端。生產方式落後、資源消耗大、污染排放多。中國企業生氣蓬勃、成長快,但缺少持之以恆投入創新能力的提升,國際競爭力不足。希望這個到計劃能為中國工業帶來新景象吧。

industiral-4.0b

互聯網技術(Web Internet)的發展史

簡介

互聯網技術(Web Internet)的發展飛快,轉眼間已到第四代。第一代叫web 1.0,即傳統的網站站主設定網頁結構及內容,向公眾發放自己的訊息。之後版本是資源平等的體現,叫 web 2.0,網站站主只提供一個網站架構, 而內容則由參與者上載, 如youtube, facebook, xanga,使用如AJAX的技術。進而 Web 3.0,該詞包含多層含義,用來概括網際網路發展過程中可能出現的各種不同的方向和特徵,包括:大數據、物聯網,將網際網路本身轉化為一個泛型資料庫;跨瀏覽器、超瀏覽器的內容投遞和請求機制;人工智慧技術的運用;語義網;地理對映網;運用3D技術搭建的網站甚至虛擬世界或網路公國等。Web 3.0的顯著特徵為擁有10M的平均頻寬,而2.0約用1M,致於1.0 約為96K以下。今後的發展,為 web 4.0,智能化機械、生物科技…等,可能正如電影Matrix所言,做成”天網”的電腦智能系統,希望電腦不會控制人類,走著看吧。

演變歷史

互聯網技術(Web Internet)的演變的歷史大致如下:
1990—2000年,web 1.0(Web,网,作用:连接知识),主要包括网页搜索引擎、网站、数据库、文件服务器等
2000—2010年,web 2.0 (Scocial web,社会网,作用:连接知识)引入了社区、RSS、Wiki、社会化书签、社会化网络等概念
2005—2020年,web 3.0(Sementic web,语义网,作用:连接知识),由本体、语义查询、人工智能、智能代理、知识结点、语义知识管理等构成
2015—2030年,web 4.0(ubiquitous,无所不在的网,作用:连接情报),具体内容还不大清除,我想web 4.0的含义关键在于它在任何时候、任何地方能够提供给你任何需要的东西。

web4.0-b web4.0-a

Setup Django WorkFlow Application

Introduction

Recently, I studied how to setup a work flow program using python django. Believe me, Python Diango can provide you a high quality work flow web application. Let’s say I would like a simple workflow application as below diagram. I will show you how to setup the application as below instruction, and I will also show you the screen dump examples of running the application.

django-workflow0

Step 1. Prerequisition

This Work Flow Program requires Python 3.3 or greater, and django 1.6 or 1.7. I recommend you to setup under virtual environment. Setup the following python plug-in by running the following command:

$ pip3 install Django==1.7.1
$ pip3 install WebOb==1.4
$ pip3 install WebTest==2.0.16
$ pip3 install amqp==1.4.6
$ pip3 install anyjson==0.3.3
$ pip3 install beautifulsoup4==4.3.2
$ pip3 install billiard==3.3.0.18
$ pip3 install celery==3.1.16
$ pip3 install django-fsm==2.2.0
$ pip3 install django-viewflow==0.7.0
$ pip3 install django-webtest==1.7.7
$ pip3 install kombu==3.0.23
$ pip3 install mock==1.0.1
$ pip3 install pytz==2014.9
$ pip3 install singledispatch==3.4.0.3
$ pip3 install six==1.8.0
$ pip3 install waitress==0.8.9

Step 2. Create a standard django project and application

Run the following command:

$ django-admin.py startproject demo .

$ ./manage.py startapp helloworld

$ mv helloworld/ demo/

Step 3. Edit or Create the following files

3.1 edit demo/settings.py

INSTALLED_APPS = (
    ‘django.contrib.admin’,
    ‘django.contrib.auth’,
    ‘django.contrib.contenttypes’,
    ‘django.contrib.sessions’,
    ‘django.contrib.messages’,
    ‘django.contrib.staticfiles’,
    ‘viewflow’,
    ‘demo.helloworld’
)

TEMPLATE_CONTEXT_PROCESSORS = (
    ‘django.contrib.auth.context_processors.auth’,
    ‘django.core.context_processors.request’,
)

3.2 edit demo/urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
from viewflow import views as viewflow
from .helloworld.flows import HelloWorldFlow

urlpatterns = patterns(
    ”,
    url(r’^helloworld/’,
        include([
            HelloWorldFlow.instance.urls,
            url(‘^$’, viewflow.ProcessListView.as_view(), name=’index’),
            url(‘^tasks/$’, viewflow.TaskListView.as_view(), name=’tasks’),
            url(‘^queue/$’, viewflow.QueueListView.as_view(), name=’queue’),
            url(‘^details/(?P<process_pk>d+)/$’,
                viewflow.ProcessDetailView.as_view(), name=’details’)],
                namespace=HelloWorldFlow.instance.namespace),
            {‘flow_cls’: HelloWorldFlow}),
    #url(r’^flows/’, include(viewflow.urls)),
    url(r’^admin/’, include(admin.site.urls)),
    url(r’^accounts/login/$’, ‘django.contrib.auth.views.login’, name=’login’),
    url(r’^accounts/logout/$’, ‘django.contrib.auth.views.logout’, name=’logout’),
)

3.3 create demo/celery.py

import os
from celery import Celery

from django.conf import settings

os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘demo.settings’)

app = Celery(‘tests’)

app.config_from_object(‘django.conf:settings’)
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

3.4 create demo/helloworld/flows.py

from viewflow import flow
from viewflow.base import Flow, this
from viewflow.contrib import celery

from . import models, views, tasks

class HelloWorldFlow(Flow):
    process_cls = models.HelloWorldProcess

    start = flow.Start(views.CreateRequestView)
        .Next(this.approve)

    approve = flow.View(views.ApproveRequestView)
        .Next(this.is_approved)

    is_approved = flow.If(lambda p: p.approved)
        .OnTrue(this.send)
        .OnFalse(this.end)

    send = celery.Job(tasks.send)
        .Next(this.end)

    end = flow.End()

3.5 edit demo/helloworld/models.py

from django.db import models
from viewflow.models import Process

class HelloWorldProcess(Process):
    text = models.CharField(max_length=250)
    approved = models.BooleanField(default=False)

3.6 edit demo/helloworld/tasks.py

from demo.celery import app as celery_app
from viewflow.flow import flow_job

@celery_app.task()
@flow_job()
def send(activation):
    print(activation.process.text)

3.7 edit demo/helloworld/views.py

from django.views import generic
from viewflow import views as flow_views

class CreateRequestView(flow_views.StartViewMixin,
                        generic.UpdateView):
    fields = [“text”]

    def get_object(self):
        return self.activation.process

class ApproveRequestView(flow_views.TaskViewMixin,
                         generic.UpdateView):
    fields = [“approved”]

    def get_object(self):
        return self.activation.process

Step 4. Start the Application Server

Run the following Command:

./manage.py createsuperuser –username=admin –email=admin@admin.com
( setup admin password )

./manage.py makemigrations

./manage.py migrate

Start the following celery in another virtual env

celery -A demo worker -l info

Start the application server:

./manage.py runserver

Step 4. Run the Application from browser

Admin Logon

http://127.0.0.1:8000/admin/

WorkFlow Application Logon

http://127.0.0.1:8000/helloworld/

Step 5. Screen Dump Example of running the WorkFlow Application

django-workflow1

django-workflow2

django-workflow3
django-workflow4
django-workflow5

Reference Document Link:

http://viewflow.io/

http://docs.viewflow.io/material_admin.html

https://pypi.python.org/pypi/django-viewflow

Prometeo-ERP System (An Open Source ERP System)

Introduction

Recently, I found a open source ERP application project which was developed by python and django framework. Prometeo is absolutely an open-source and free of charge. It is very user friendly and user-oriented, too.

Installation

1. Checkout sources from the GIT repository:

git clone https://emanuele.bertoldi@code.google.com/p/prometeo-erp/ prometeo

http://code.google.com/p/prometeo-erp

https://code.google.com/archive/p/prometeo-erp/

https://code.google.com/archive/p/prometeo-erp/source/default/source

2. Follow the instructions in the README file from the download.

3. Test the installation at http://localhost:8000 running the development server:

python manage.py runserver

Further Development

This Prometeo-ERP project is no longer maintained nor supported! However, it is succeeded by another project called django ERP, which is still under developing. Its link is –> https://github.com/djangoERPTeam/django-erp

Steps to Install Django-cms in Raspberry Pi

Introduction

django CMS is a modern web publishing platform built with Django, the web application framework “for perfectionists with deadlines”. Django CMS offers out-of-the-box support for the common features you’d expect from a CMS, but can also be easily customised and extended by developers to create a site that is tailored to their precise needs. The following will show you how step by step of Django CMS installation, and also with screen dump examples.

Installation Steps

start a virtual environment under Raspberry Pi
1.  sudo pip install virtualenv
2.  virtualenv env
3.  sourse env/bin/activate

Install Djangocms-Installer and create a project
1.  pip install djangocms-installer
2.  djangocms -p project project
Use default value for most questions
select lang = en, fr, de
Use default username : pi   then input your password

Start CMS Application
1.  cd project
j2.  python manage.py runserver
3.  You can browse the CMS web site via link http://127.0.0.1:8000/

Select a CMS template from Start Bootstrap
1.  http://startbootstrap.com/template-overviews/modern-business/   –> download
2.  copy css, font-awesome, fonts, js directories from download to project/project/static
3.  copy full-width.html to project/project/templates directory
4.  Edit line in settings.py

CMS_TEMPLATES = (
## Customize this
(‘fullwidth.html’, ‘Fullwidth’),
(‘sidebar_left.html’, ‘Sidebar Left’),     –> Delete
(‘sidebar_right.html’, ‘Sidebar Right’)    –> Delete
)

5.  Delete    ./templates/sidebar_left.html      sidebar_right.html

6.  Edit the full-width.html file as below:

{% load cms_tags menu_tags sekizai_tags staticfiles %}
<!DOCTYPE html>
<html lang=”{{ LANGUAGE_CODE }}”>

<head>

<meta charset=”utf-8″>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<meta name=”description” content=”{% page_attribute ‘meta_description’ %}”>
<meta name=”author” content=””>

<title>{% page_attribute ‘page_title’ %}CMS</title>

<!– Bootstrap Core CSS –>
<link href=”{% static “css/bootstrap.min.css” %}” rel=”stylesheet”>

<!– Custom CSS –>
<link href=”{% static “css/modern-business.css” %}” rel=”stylesheet”>

<!– Custom Fonts –>
<link href=”{% static “font-awesome/css/font-awesome.min.css” %}” rel=”stylesheet” type=”text/css”>

….
<![endif]–>
{% render_block “css” %}
</head>

<body>
{% cms_toolbar %}
<!– Navigation –>
….

{% show_menu 0 100 100 100 %}     and delete lines as below:
<div class=”collapse navbar-collapse” id=”bs-example-navbar-collapse-1″>
<ul class=”nav navbar-nav navbar-right”>
{% show_menu 0 100 100 100 %}
</ul>
</div>
<!– /.navbar-collapse –>
….

<!– jQuery –>
<script src=”{% static “js/jquery.js” %}”></script>

<!– Bootstrap Core JavaScript –>
<script src=”{% static “js/bootstrap.min.js” %}”></script>
<% render_block “js” %}
</body>

Change the line         <a class=”navbar-brand” href=”index.html”>Start Bootstrap</a>
To                      <a class=”navbar-brand” href=”/”>New CMS Name</a>

7.  Rename   base.html    to base-bak.html
Rename   full-width.html   base.html

8.  Restart the server and test.

Screen Dump of Installation

pi@gopi1:~ $ pip install virtualenv
pi@gopi1:~ $ virtualenv env
New python executable in /home/pi/env/bin/python
Installing setuptools, pip, wheel…done.
pi@gopi1:~ $ source env/bin/activate
(env) pi@gopi1:~ $ pip install djangocms-installer
Collecting djangocms-installer
Downloading djangocms_installer-0.8.8-py2.py3-none-any.whl (56kB)
100% |████████████████████████████████| 61kB 714kB/s
Requirement already satisfied (use –upgrade to upgrade): argparse in /usr/lib/python2.7 (from djangocms-installer)
Collecting dj-database-url>=0.4 (from djangocms-installer)
Collecting six (from djangocms-installer)
Using cached six-1.10.0-py2.py3-none-any.whl
Requirement already satisfied (use –upgrade to upgrade): pip in ./env/lib/python2.7/site-packages (from djangocms-installer)
Collecting tzlocal (from djangocms-installer)
Collecting pytz (from tzlocal->djangocms-installer)
Using cached pytz-2016.4-py2.py3-none-any.whl
Installing collected packages: dj-database-url, six, pytz, tzlocal, djangocms-installer
Successfully installed dj-database-url-0.4.1 djangocms-installer-0.8.8 pytz-2016.4 six-1.10.0 tzlocal-1.2.2
(env) pi@gopi1:~ $ djangocms -p project project
Database configuration (in URL format) [default sqlite://localhost/project.db]:
django CMS version (choices: 2.4, 3.0, 3.1, 3.2, stable, develop) [default stable]:
Django version (choices: 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, stable) [default stable]:
Activate Django I18N / L10N setting; this is automatically activated if more than language is provided (choices: yes, no) [default yes]:
Install and configure reversion support (choices: yes, no) [default yes]:
Languages to enable. Option can be provided multiple times, or as a comma separated list. Only language codes supported by Django can be used here: en, fr
Optional default time zone [default Asia/Hong_Kong]:
Activate Django timezone support (choices: yes, no) [default yes]:
Activate CMS permission management (choices: yes, no) [default yes]:
Use Twitter Bootstrap Theme (choices: yes, no) [default no]:
Use custom template set [default no]:
Load a starting page with examples after installation (english language only). Choose “no” if you use a custom template set. (choices: yes, no) [default no]:
Creating the project
Please wait while I install dependencies
Dependencies installed
Creating the project

Operations to perform:
Synchronize unmigrated apps: project, staticfiles, messages, djangocms_admin_style, sitemaps, sekizai, treebeard
Apply all migrations: djangocms_file, reversion, djangocms_inherit, sessions, admin, djangocms_column, djangocms_text_ckeditor, sites, auth, djangocms_video, menus, contenttypes, djangocms_picture, djangocms_googlemap, djangocms_style, djangocms_link, cms, djangocms_teaser
Synchronizing apps without migrations:
Creating tables…
Running deferred SQL…
Installing custom SQL…
Running migrations:
Rendering model states… DONE
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying sites.0001_initial… OK
Applying cms.0001_initial… OK
Applying cms.0002_auto_20140816_1918… OK
Applying cms.0003_auto_20140926_2347… OK
Applying cms.0004_auto_20140924_1038… OK
Applying cms.0005_auto_20140924_1039… OK
Applying cms.0006_auto_20140924_1110… OK
Applying cms.0007_auto_20141028_1559… OK
Applying cms.0008_auto_20150208_2149… OK
Applying cms.0008_auto_20150121_0059… OK
Applying cms.0009_merge… OK
Applying cms.0010_migrate_use_structure… OK
Applying cms.0011_auto_20150419_1006… OK
Applying cms.0012_auto_20150607_2207… OK
Applying cms.0013_urlconfrevision… OK
Applying cms.0014_auto_20160404_1908… OK
Applying djangocms_column.0001_initial… OK
Applying djangocms_file.0001_initial… OK
Applying djangocms_file.0002_auto_20151202_1551… OK
Applying djangocms_file.0003_remove_related_name_for_cmsplugin_ptr… OK
Applying djangocms_file.0004_set_related_name_for_cmsplugin_ptr… OK
Applying djangocms_googlemap.0001_initial… OK
Applying djangocms_inherit.0001_initial… OK
Applying djangocms_inherit.0002_auto_20150622_1244… OK
Applying djangocms_link.0001_initial… OK
Applying djangocms_link.0002_auto_20140929_1705… OK
Applying djangocms_link.0003_auto_20150212_1310… OK
Applying djangocms_link.0004_auto_20150708_1133… OK
Applying djangocms_link.0005_auto_20151003_1710… OK
Applying djangocms_link.0006_remove_related_name_for_cmsplugin_ptr… OK
Applying djangocms_link.0007_set_related_name_for_cmsplugin_ptr… OK
Applying djangocms_picture.0001_initial… OK
Applying djangocms_picture.0002_auto_20151018_1927… OK
Applying djangocms_style.0001_initial… OK
Applying djangocms_style.0002_set_related_name_for_cmsplugin_ptr… OK
Applying djangocms_teaser.0001_initial… OK
Applying djangocms_text_ckeditor.0001_initial… OK
Applying djangocms_text_ckeditor.0002_remove_related_name_for_cmsplugin_ptr… OK
Applying djangocms_text_ckeditor.0003_set_related_name_for_cmsplugin_ptr… OK
Applying djangocms_video.0001_initial… OK
Applying djangocms_video.0002_set_related_name_for_cmsplugin_ptr… OK
Applying menus.0001_initial… OK
Applying reversion.0001_initial… OK
Applying reversion.0002_auto_20141216_1509… OK
Applying sessions.0001_initial… OK
Creating admin user
Username (leave blank to use ‘pi’):
Email address: goldman.au168@gmail.com
Password:
Password (again):
Superuser created successfully.
All done!
Get into “/home/pi/cmsproj” directory and type “python manage.py runserver” to start your project
(env) pi@gopi1:~ $ cd project
(env) pi@gopi1:~/project $ ls
manage.py  media  project  project.db  requirements.txt  static
(env) pi@gopi1:~/project $ python manage.py runserver
Performing system checks…

System check identified no issues (0 silenced).
May 08, 2016 – 15:05:32
Django version 1.8.13, using settings ‘project.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
New revision!!!! RELOAD!
28495694-7c4f-409e-9605-c499bf16e97a (<type ‘str’>)
-> None (<type ‘NoneType’>)
reverse(‘my_test_app_view’): Reverse for ‘my_test_app_view’ with arguments ‘()’ and keyword arguments ‘{}’ not found. 0 pattern(s) tried: []
reverse(‘my_test_app_view’): Reverse for ‘my_test_app_view’ with arguments ‘()’ and keyword arguments ‘{}’ not found. 0 pattern(s) tried: []
[08/May/2016 15:05:33] “GET /admin/ HTTP/1.1” 302 0
[08/May/2016 15:05:34] “GET /en/admin/ HTTP/1.1” 302 0
[08/May/2016 15:05:35] “GET /en/admin/login/?next=/en/admin/ HTTP/1.1” 200 3107
[08/May/2016 15:05:35] “GET /admin/ HTTP/1.1” 302 0
[08/May/2016 15:05:35] “GET /en/admin/ HTTP/1.1” 302 0
[08/May/2016 15:05:35] “GET /en/admin/login/?next=/en/admin/ HTTP/1.1” 200 3107
[08/May/2016 15:05:36] “GET /static/admin/css/base.css HTTP/1.1” 200 14049
[08/May/2016 15:05:36] “GET /static/admin/css/base.css HTTP/1.1” 200 14049
[08/May/2016 15:05:36] “GET /static/admin/css/login.css HTTP/1.1” 200 940
[08/May/2016 15:05:36] “GET /static/djangocms_admin_style/js/jquery.ui.touch-punch.min.js HTTP/1.1” 200 0
[08/May/2016 15:05:36] “GET /static/djangocms_admin_style/css/djangocms-admin.css HTTP/1.1” 200 151181
[08/May/2016 15:05:36] “GET /static/djangocms_admin_style/js/base-admin.js HTTP/1.1” 200 2910
[08/May/2016 15:05:36] “GET /static/djangocms_admin_style/js/drag-touch-support.js HTTP/1.1” 200 1200
[08/May/2016 15:05:36] “GET /static/admin/css/login.css HTTP/1.1” 200 940
[08/May/2016 15:05:37] “GET /static/djangocms_admin_style/fonts/django-admin-iconfont.woff?v=3.2.0 HTTP/1.1” 200 10612
[08/May/2016 15:07:16] “POST /en/admin/login/?next=/en/admin/ HTTP/1.1” 302 0
[08/May/2016 15:07:17] “GET /en/admin/ HTTP/1.1” 200 7525
[08/May/2016 15:07:17] “GET /static/admin/css/base.css HTTP/1.1” 304 0
[08/May/2016 15:07:17] “GET /static/admin/css/dashboard.css HTTP/1.1” 200 434
[08/May/2016 15:07:17] “GET /static/admin/css/dashboard.css HTTP/1.1” 200 434
[08/May/2016 15:07:17] “GET /static/djangocms_admin_style/css/djangocms-admin.css HTTP/1.1” 304 0
[08/May/2016 15:07:17] “GET /static/djangocms_admin_style/js/base-admin.js HTTP/1.1” 304 0
[08/May/2016 15:07:17] “GET /static/djangocms_admin_style/js/drag-touch-support.js HTTP/1.1” 304 0
[08/May/2016 15:07:17] “GET /static/djangocms_admin_style/js/jquery.ui.touch-punch.min.js HTTP/1.1” 304 0
[08/May/2016 15:07:17] “GET /static/djangocms_admin_style/img/icon_arrow_right.png HTTP/1.1” 200 15812
^C(env) pi@gopi1:~/project $ ls
manage.py  media  project  project.db  requirements.txt  static
(env) pi@gopi1:~/project $ cd project
(env) pi@gopi1:~/project/project $ ls
__init__.py   settings.py   static     urls.py   wsgi.py
__init__.pyc  settings.pyc  templates  urls.pyc  wsgi.pyc
(env) pi@gopi1:~/projectj/project $ cd /home/allusers/startboot*
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ ls
404.html          contact.html     index.html            portfolio-4-col.html
about.html        css              js                    portfolio-item.html
bin               faq.html         LICENSE               pricing.html
blog-home-1.html  font-awesome     portfolio-1-col.html  README.md
blog-home-2.html  fonts            portfolio-2-col.html  services.html
blog-post.html    full-width.html  portfolio-3-col.html  sidebar.html
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cp -r css /home/pi/project/project/static
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cp -r font-awesome /home/pi/project/project/static
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cp -r fonts /home/pi/project/project/static
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cp -r js /home/pi/project/project/static
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cp full-width.html /home/pi/project/project/templates
(env) pi@gopi1:/home/allusers/startbootstrap-modern-business-1.0.5 $ cd /home/pi/project/project/templates
(env) pi@gopi1:~/project/project/templates $ ls
base.html        fullwidth.html     sidebar_right.html
full-width.html  sidebar_left.html
(env) pi@gopi1:~/project/project/templates $ ls -l
total 24
-rw-r–r– 1 pi pi 1122 May  8 15:01 base.html
-rwxr-xr-x 1 pi pi 6589 May  8 15:13 full-width.html
-rw-r–r– 1 pi pi  191 May  8 15:01 fullwidth.html
-rw-r–r– 1 pi pi  308 May  8 15:01 sidebar_left.html
-rw-r–r– 1 pi pi  308 May  8 15:01 sidebar_right.html
(env) pi@gopi1:~/project/project/templates $ vi full-width.html
(env) pi@gopi1:~/project/project/templates $ mv base.html base-bak.html
(env) pi@gopi1:~/project/project/templates $ mv full-width.html base.html
(env) pi@gopi1:~/project/project/templates $ cd ..
(env) pi@gopi1:~/project/project $ ls
__init__.py   settings.py   static     urls.py   wsgi.py
__init__.pyc  settings.pyc  templates  urls.pyc  wsgi.pyc
(env) pi@gopi1:~/project/project $ vi settings.py
(env) pi@gopi1:~/project/project $ cd templates
(env) pi@gopi1:~/project/project/templates $ ls
base-bak.html  base.html  fullwidth.html  sidebar_left.html  sidebar_right.html
(env) pi@gopi1:~/project/project/templates $ vi fullwidth.html
(env) pi@gopi1:~/project/project/templates $ cd ..
(env) pi@gopi1:~/project/project $ cd ..
(env) pi@gopi1:~/project $ python manage.py runserver
Performing system checks…

System check identified no issues (0 silenced).
May 08, 2016 – 15:33:06
Django version 1.8.13, using settings ‘project.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Screen Dump Result

After succeeded installation, you can browse the django CMS via link http://127.0.0.1:8000 as below screen  dump results.

djangocms1 djangocms2 djangocms3 djangocms4

 

BONUS:

If you make any change, you can run the following command:

python manage.py makemigrations

python manage.py migrate

Useful Add-On Plug-in:

pip install aldryn-style

pip uninstall djangocms-style

pip install aldryn-bootstrap3

Powered By Goldman Design