EMMET — Справочник сокращений для ускорения верстки
Справочник EMMET сокращений или шпаргалка EMMET представляет собой сборник всех комбинаций команд или аббревиатур широко известного плагина для ускорения верстки.
EMMET может все использоваться совместно с такими редакторами, как Sublime Text, PHPStorm и WebStorm, NetBeans, Eclipse, Aptana, Coda, TextMate, Komodo Edit, Notepad++, CodeMirror, Brackets, Adobe Dreamviewer и Ace
оф. сайт: http://emmet.io/
Базовый синтаксис EMMET
Дочерний: >
Соединение: +
Поместить выше (в дереве HTML): ^
Группировать: ()
Умножение: *
id и class
Атрибуты: []
Текст: {}
Отдельно рассмотрим HTML сокращения.
!
a:link
a:mail
base
br
link
link:css
link:favicon
link:rss
meta:utf
meta:vp
meta:compat
script:src
img
ifr
emb
obj
map+
area
form:get
form:post
Atom — современный редактор кода
Atom — современный редактор кода (A hackable text editor for the 21st Century).
оф. сайт: https://atom.io/
Видео обзор данного редактора
Популярные плагины для веб разработки:
- atom-beautify
- autocomplete-html-entities
- color-picker
- emmet
- git-plus
- minimap
Немного об Atom. Данный редактор кода разработан Гитхаб (github).
Atom не является обычным веб-приложением. Это специализированный вариант браузера Chromium, переделанный так, чтобы быть в первую очередь текстовым редактором, а не веб-браузером. Каждое окно Atom — это отдельная локальная веб-страница.
За такими проектами будущее, как говорят сами разработчики: «Мы уверены в будущем платформы, на которой построен Atom, ведь веб-технологии развиваются совместными усилиями целой отрасли. Нативные технологии приходят и уходят, а веб становится всё лучше и лучше с каждым годом. Мы с удовольствием будем использовать все его возможности.»
Детально о JOIN в SQL
Рассмотрим 7 типов join:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL OUTER JOIN (в MySQL UNION)
- LEFT JOIN EXCLUDING INNER JOIN
- RIGHT JOIN EXCLUDING INNER JOIN
- OUTER JOIN EXCLUDING INNER JOIN
Наглядно посмотрим в чем разница.
А теперь подробно о каждом из них.
Inner JOIN
SELECT <select_list>
FROM Table_A A
INNER JOIN Table_B B
ON A.Key = B.Key
Left JOIN
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
Right JOIN
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
Outer JOIN
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
Left Excluding JOIN
SELECT <select_list>
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
Right Excluding JOIN
SELECT <select_list>
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL
Outer Excluding JOIN
SELECT <select_list>
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS NULL
А теперь все это на примере 2 простых таблиц из БД:
TABLE_A
PK Value
---- ----------
1 FOX
2 COP
3 TAXI
6 WASHINGTON
7 DELL
5 ARIZONA
4 LINCOLN
10 LUCENT
TABLE_B
PK Value
---- ----------
1 TROT
2 CAR
3 CAB
6 MONUMENT
7 PC
8 MICROSOFT
9 APPLE
11 SCOTCH
-- INNER JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
INNER JOIN Table_B B
ON A.PK = B.PK
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
1 FOX TROT 1
2 COP CAR 2
3 TAXI CAB 3
6 WASHINGTON MONUMENT 6
7 DELL PC 7
(5 row(s) affected)
-- LEFT JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
LEFT JOIN Table_B B
ON A.PK = B.PK
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
1 FOX TROT 1
2 COP CAR 2
3 TAXI CAB 3
4 LINCOLN NULL NULL
5 ARIZONA NULL NULL
6 WASHINGTON MONUMENT 6
7 DELL PC 7
10 LUCENT NULL NULL
(8 row(s) affected)
-- RIGHT JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
RIGHT JOIN Table_B B
ON A.PK = B.PK
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
1 FOX TROT 1
2 COP CAR 2
3 TAXI CAB 3
6 WASHINGTON MONUMENT 6
7 DELL PC 7
NULL NULL MICROSOFT 8
NULL NULL APPLE 9
NULL NULL SCOTCH 11
(8 row(s) affected)
-- OUTER JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.PK = B.PK
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
1 FOX TROT 1
2 COP CAR 2
3 TAXI CAB 3
6 WASHINGTON MONUMENT 6
7 DELL PC 7
NULL NULL MICROSOFT 8
NULL NULL APPLE 9
NULL NULL SCOTCH 11
5 ARIZONA NULL NULL
4 LINCOLN NULL NULL
10 LUCENT NULL NULL
(11 row(s) affected)
-- LEFT EXCLUDING JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
LEFT JOIN Table_B B
ON A.PK = B.PK
WHERE B.PK IS NULL
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
4 LINCOLN NULL NULL
5 ARIZONA NULL NULL
10 LUCENT NULL NULL
(3 row(s) affected)
-- RIGHT EXCLUDING JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
RIGHT JOIN Table_B B
ON A.PK = B.PK
WHERE A.PK IS NULL
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
NULL NULL MICROSOFT 8
NULL NULL APPLE 9
NULL NULL SCOTCH 11
(3 row(s) affected)
-- OUTER EXCLUDING JOIN
SELECT A.PK AS A_PK, A.Value AS A_Value,
B.Value AS B_Value, B.PK AS B_PK
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.PK = B.PK
WHERE A.PK IS NULL
OR B.PK IS NULL
A_PK A_Value B_Value B_PK
---- ---------- ---------- ----
NULL NULL MICROSOFT 8
NULL NULL APPLE 9
NULL NULL SCOTCH 11
5 ARIZONA NULL NULL
4 LINCOLN NULL NULL
10 LUCENT NULL NULL
(6 row(s) affected)
XRDP для сервера Debian
Установка графической оболочки и XRDP
Обновляем список доступных пакетов:
apt-get update && apt-get upgrade
Устанавливаем графическое окружение и xRDP:
apt-get -y install gnome-desktop-environment
apt-get -y install xrdp nano
Редактируем файл запуска xRDP. Наща цель — настроить автоматическую загрузку графической оболочки при запуске VPS. Воспользуемся любым редактором, например, nano:
nano /etc/xrdp/startwm.sh
Добавляем в файл startwm.sh следующие строки:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
. /etc/X11/Xsession
gnome-session
В обязательном порядке добавьте в конце пустую строку. Сохраните результаты при помощи нажатия клавиш Ctrl+O и выйдите из меню редактора — Ctrl+X.
Делаем перезапуск xRDP и сервера
service xrdp restart
reboot
Python Django — первое приложение
Разработка на Python обязательно должны быть на Linux- системах.
Рассмотрим создание первого тестового прилежания на framework Django. К примеру ОС Debian.
По-умолчанию Python уже установлен, установим среду и framework Django, после чего запустим его, локальный адрес будет: 127.0.0.1:8000
Приступим:
apt-get install python-pip python-dev build-essential
pip install pip --upgrade
easy_install virtualenv
virtualenv --no-site-packages djangoenv
cd djangoenv
source bin/activate
На экране увидим что то похожее:
(djangoenv) root@debian:/var/djangoenv#
Итак, далее:
easy_install django
cd bin
django-admin.py startproject firstapp
cd firstapp
python manage.py runserver
На экране увидим:
Starting development server at http://127.0.0.1:8000/
Готово, открываем браузер и смотрим.