Для плідної роботи Ruby-програміста, одного знання мови програмування не є достатнім. Потрібно мати ПК, встановлену ОС Linux та налаштоване середовище. Якщо ви працюєте за одним робочим місцем, то тут все досить просто – інсталюємо, налаштовуємо. Мені часто приходиться працювати за різними ПК, варіант на кожному ПК ставити Linux відпадає одразу, також налаштування середовища можливе, але затратно по часу. Тому я вибрав варіант віддаленого робочого столу.
Віддалений робочий стіл на X2Go
Інсталюємо у віртуальну машину(VPS) Linux, в якості ОС мій вибір зупинився на Xubuntu – офіційний варіант дистрибутиву Ubuntu, котрий в якості робочого середовища використовує xfce. Згідно wikipedia Xubuntu призначено для малопотужних комп'ютерів, або для тих, хто бажає отримати більшу швидкодію і використовує здебільшого застосунки GTK+.
Після успішної інсталяції Xubuntu у VPS, потрібно вирішити питання із доступом до нашого майбутнього робочого середовища. Я зупинився на X2Go – opensource продукт, який вокористовує NX tehnology протокол, безпеку з'єднання забезпечує ssh (тобто, для підключення до віддаленого робочого столу, якшо ваш VPS є за NAT'ом, доствтньо прокинути 22 порт, і все)
Інсталюємо x2go
1 2 3 |
sudo add-apt-repository ppa:x2go/stable sudo apt-get update sudo apt-get install x2goserver x2goserver-xsession |
Далі інсталюємо X2Go клієнт, який доступний для Linux/Windows та підключаємось до нашого віддаленого столу.
Проблеми:
- На жаль, в X2Go я не зміг коректно налаштувати компресію трафіка, тому скролінг сторінки у веб-браузері та у Sublime працював із дуже помітною затримкою після деякого часу роботи.
- Зміна розкладки клавіатури – можливо я не до розібрвся, але забіндити переключення за комбінацією клавіш вдалося, але при кожному новому конекті після відключення, воно не працює, приходиться дьоргати в ручну, потім баіндінг починає працюватия ….
Віддалений робочий стіл на XRDP
Враховуючи незначні проблеми при використанні X2Go я запинився на XRDP (windows має штатний клієнт для цього протоколу: mstsc).У VPS я інсталював Linux Mint та інсталював xrdp згідно цієї інструкції. Інсталювавши скрипт xrdp версії 1.7.1, яка усуває проблему із переключення layout клавіатури ми отримуємо все той же добрий Linux на основі Ubuntu
Linux Mint поширується в чотирьох редакціяк, які відрізняються робочими середовищами:
- Cinnamon desktop
- MATE desktop
- Xfce desktop
- KDE desktop
KDE я відкинув зразу, MATE я довгий час використовував, поки дещо не пішло не так і я не зміг дати раду, тому експерементувати знову не став. Після інсталяції Cinnamon я банально не зміг запустити термінал. Перший лінк в гуглі веден на аналогічну проблему, рішення якого мені не допомогло. Тому знову добрий Xfce :). Доречі, раджу інсталювати саме 64-х бітну ОС, оскільки ви не зможете інсталювати той же Viber, Slack, на момент написання цих рядків програм для 32-х бітно ОС Linux не існує
База даних (PostgresSql)
Інсталяція
1 2 |
sudo apt-get update sudo apt-get install postgresql postgresql-contrib libpq-dev |
Налаштування аутентифікації знаходятся у файлі /etc/postgresql/9.3/main/pg_hba.conf
1 2 |
# TYPE DATABASE USER ADDRESS METHOD local all postgres peer |
Цей рядок говорить про те, що користувач Postgres може підключатися до будь-якій базі даних локальної СУБД PostgreSQL через сокет(налаштування за змовчанням). Пароль при цьому вводити не потрібно, операційна система передасть ім'я користувача, і воно буде використано для аутентифікації.
Підключення до БД:
1 |
sudo -u postgres psql postgres postgres |
Щоб мати можливість підключатися по мережі, потрібно в pg_hdba.conf додати рядок:
1 2 |
# TYPE DATABASE USER ADDRESS METHOD hostssl all all 0.0.0.0/0 md5 |
Також редагуємо рядок до такого виду
1 |
local all all md5 |
що дасть можливість локально підключатися по логіну та паролю
Метод аутентифікації MD5 означає, що для підключення доведеться ввести пароль.
Створення нового користувача PostgreSQL
1 |
CREATE USER username WITH password 'password'; |
Створення бази даних з PostgreSQL
1 |
CREATE DATABASE dbname OWNER dbadmin; |
Налаштування прав доступу до бази даних
Якщо користувач є власником (owner) бази даних, то у нього є всі права. Але якщо ви хочете дати доступ іншому користувачеві, то зробити це можна за допомогою команди GRANT. Запит нижче дозволить користувачеві підключатися до бази даних. Але не забувайте про конфігураційному файлі pg_hba.conf, в ньому теж повинні бути відповідні дозволи на підключення.
1 |
GRANT CONNECT ON DATABASE dbname TO dbadmin; |
Dump/Restore
Виконання дампу БД mybd у файл
1 |
pg_dump -U username -W mybd > mybd.pgsql.backup |
Виконання restore
1 |
pg_restore -d dbname filename |
PgAdmin
Інсталяція менеджера PostgreSQL'я
1 |
sudo apt-get install pgadmin3 |
шкода що немає EMS manager'а під Linux, кращого я не бачив
У мене є проекти на MySql, тому інсталюємо:
1 2 3 |
sudo apt-get install mysql-server mysql-client libmysqlclient-dev sudo mysql_install_db sudo mysql_secure_installation |
Інсталюємо Ruby за допомою rbenv
(один проект працював )
Взагалі я завжди використовував RVM для інсталяції ruby, але один проект працював на ruby 2.3.1, а на дефаултному 2.4.0 були деякі проблеми. Команда rbenv locale 2.3.1 в каталозі з проектом задіює ruby 2.3.1 – мені це здалося досить зручним, і я перейшов на rbenv так би мовити
Для зручності добавляємо аліаси команд в ~/.bashrc
1 2 3 4 5 6 7 8 |
alias gl='git log ' alias gs='git status ' alias ga='git add ' alias gc='git commit ' alias gco='git checkout ' alias gm='git merge ' alias gb='git branch ' |
Добавляємо можливість бачити назву текучого branch'у в запрошені консолі
1 2 3 4 5 6 7 8 9 10 |
# Add git branch if its present to PS1 parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ ' fi unset color_prompt force_color_prompt |
Взагалі я юзав другу версію, яка в принципі різниця, але побачив мега круту штуку. Підводиш мишку до метода, вивалюється підказка, в яких вайлах цей метод описаний (нажаль заскрінтошити не можу), поставив третю версію
Корисні налаштування Sublime text 3
Біндимо комбінацію alt+shift+r для форматування коду
Preferences -> Key Bindings – Default
1 |
{ "keys": ["alt+shift+r"], "command": "reindent" , "args": { "single_line": false } }, |
Два пробіля замість табуляції
Preferences → Settings User
{
1 2 3 |
"tab_size": 2, "translate_tabs_to_spaces": true |
Корисні інструменти
wwwsqldesigner прототипування БД
Cacoo онлайнінструменту для створення прототипу інтерфейсу
Sqliteman