Записки разработчика

01.02.2016

Выставить 777 на папки и подпапки в текущей директории

Чтобы выставить права только на вложенные директории, выполним следдующую команду в консоли:

chmod -R 777 $(find . -type d)
admin @ 11:45


30.01.2016

Работа с git

Если с Mercurial я более менее привык работать, то вынужденные встречи по работе с git повергали меня в уныние. Здесь я немного опишу свой опыт и оставлю шпаргалки, которые составил для себя в процессе изучения/использования.

Сразу скажу, что пользуюсь сервисом репозитариев BitBucket. Он нравится мне тем, что там можно создавать приватные репозитарии — а так как проекты в основном коммерческие, то эта возможность как нельзя кстати.

В общем, схема работы у меня такая.

1. Создать репозитарий на BitBacket.
2. Выполнить команды :

mkdir /path/to/your/project
cd /path/to/your/project
git init
git remote add origin git@bitbucket.org:username/project-name.git

Где username — ваше имя пользователя, project-name — название проекта на сервере репов. В принципе эти команды я скопировал с BitBacket — он приводит эти команды для начала работы.

3. Если вы не настраивали конфигурационные данные, настроим:

git config --global user.name "Dmitriy"
git config --global user.email mail@mailserver.ru

параметр global указывает на то что эти настройки git сохранит глобально для этого пользователя. К примеру на локальной машине у вас много проектов, часто используете git — можно настройки задать глобально, чтобы не вводить их на каждом новом проекте.

4. Настроим .gitignore

Этот файл говорит git-у, что полезет в него, а что — нет. Допустим у нас в проекте есть папки с блобами. Пишу в этом файле такую строку:

blobs/

5. Добавим файлы проекта:

git add .

6. Ветки master до первого коммита у нас нет — поэтому сделаем коммит:

git commit -a -m "init"

Здесь ключ m и строка в кавычках даёт название коммиту.

7. Теперь всё нужно отправить в репозитарий:

git push origin master

В этом месте может возникнуть ошибка:

login@server:~/public_html$ git push origin master
Counting objects: 2265, done.
Delta compression using up to 40 threads.
fatal: unable to create thread: Resource temporarily unavailable
error: failed to push some refs to 'git@bitbucket.org:username/project-name.git'

Небольшой гуглинг привел меня на StackOverflow, выполним рекомендации:

login@server:~/public_html$ git config --global pack.windowMemory "100m"
login@server:~/public_html$ git config --global pack.SizeLimit "100m"
login@server:~/public_html$ git config --global pack.threads "1"

после этих настроек всё отлично запушилось.

В следующей части расскажу о ветках и зачем они нужны.

admin @ 02:13


29.01.2016

как в Linux узнать размер директорий первого уровня

Чтобы узнать сколько места занимают директории, вместе с поддиректориями, в текущей директории введите:

find . -maxdepth 1 -type d -exec du -hs {} \;
admin @ 22:51


23.05.2015

Глюк с курсором в редакторе sublime text 2

Недавно пересел на Calculate Linux, система понравилась, но вот незадача — в редакторе Sublime Text 2 появилсь проблема: в какой-то момент курсор залипает, остается на месте и не двигается, причем такое впечатление что невидимый курсор двигается и при нажатии клавиш — выводит текст. Версия: 2.0.2, build 2221. И происходит это часто. Честно скажу что пока глюк не поборол, но нашел как с ним бороться.

Конечно этот способ больше подойдет любителям редактора всех времен и народов Vi. У sublime есть режим Vintage (режим урезанного Vi-редактора).

Включить его просто: Preferences -> Settings — Default, далее найти настройку:

"ignored_packages": ["Vintage"]

и заменить её на

"ignored_packages": []

Теперь с глюком помогает справится переключение в командный режим vi, и обратно.

admin @ 16:50


22.05.2015

использовать классы Битрикс без подключения дизайна

Чтобы использовать классы CMS битрикс, без подключения дизайна, в начале файла вставьте этот код:

require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
admin @ 11:27


21.05.2015

json_encode не работает

Сегодня столкнулся когда пытался понять, почему ajax-запрос не получает ответ, вернее получает, но он пустой. По факту что получилось:

была использована функция:

echo json_encode( $response , JSON_UNESCAPED_UNICODE );

аттрибут JSON_UNESCAPED_UNICODE — очень полезный, позволяет корректно работать с utf-8 строками через json. И в этом крылась проблема))

Оказывается, аттрибут JSON_UNESCAPED_UNICODE был добавлен только в php 5.4
у меня же, по факту, на серваке стоял 5.39.4

Пришлось действовать по старинке:

echo $response;

Все приятного кодинга, и не слишком геморного дебага!

admin @ 20:29


19.05.2015

настройка горячих клавиш редактора Sublime Text 2

Сегодня поговорим о горячих клавишах редактора Sublime.

Редактор очень нравится, радует что он есть под все системы, радует что плагины можно на Python писать. Но пока не до плагинов, сегодня я столкнулся с небольшой проблемой — нужно было переконверировать большое количество файлов из cp1251 в utf-8. Сначала делал руками: открываю файл- вижу кодировка сломана — Reopen with encoding — Save with encoding. И так каждый файл. Сразу надоело, захотелось это делать чуть быстрее — хотя бы не лазить мышкой в меню File каждый раз.

Решил посмотреть какие горячие клавиши отвечают за «reopen with encoding» и за «save with encoding»: Preferences -> Key Bindings — Default

Но, к сожалению, там ничего подобного не нашел. И тут нам на помощь приходит логгер команд.
Для начала, вызовим консоль: Ctrl-~ или View -> Show Console

Набираем руками или копируем отсюда команду: sublime.log_commands(True)

Теперь при работе в редакторе мы будем видеть команды, которые выполняет наш редактор. Вернемся к нашей задаче.

Открыли файл: Вместо cp1251 отображаются кракозябры. Выполняем File -> Reopen with encoding файл перекодируется, смотрим что нам консоль показала:

command: reopen {"encoding": "Cyrillic (Windows 1251)"}

При сохранении с кодировкой:

command: save {"encoding": "utf-8"}

Добавим это в конфиг (горячие клашиви можете поменять): Preferences -> Key Bindings — User

[
	{ "keys": ["ctrl+alt+w"], "command": "reopen", "args": {"encoding": "Cyrillic (Windows 1251)" } },
	{ "keys": ["ctrl+alt+s"], "command": "save", "args": {"encoding": "utf-8" } }
]

А вообще открытие Windows-1251 с кракозябрами зависит от этой настройки (Preferences -> Settings — Default)

"fallback_encoding": "Western (Windows 1252)",

Чтобы кракозябры не появлялись — можно поменять на:

"fallback_encoding": "Cyrillic (Windows 1251)",
admin @ 23:25


26.03.2015

ssh настроить чтобы не выкидывало по таймауту

При работе с ssh есть одна проблема — когда на минуту другую отвлекся от терминала — соединение разрывается. Решается просто:

touch ~/.ssh/config

добавляем в этот файл строку:

ServerAliveInterval 5
admin @ 19:36


Создать кнопку терминала с правами ROOT

Добавляете как и обычную кнопку запуска приложения но в строке команда указывате:

gksu xfce4-terminal

выбираете соответствующую инконку — и готово!

admin @ 19:22


17.10.2014

Как установить пакет dbfpy в виртуальное окружение virtualenv

Добрый день! Сегодня мы установим пакет Dbfpy в окружение virtualenv.

Думал я как-то импортировать в свое приложение базу КЛАДР. C DBF удобно работать через пакет dbfpy. Поставим:

(env)...$ pip install dbfpy

Этот пакет должен стать через PIP. Если же вы его не нашли, можно попробовать альтернативный способ — воспользоваться утилитой easy_install:

(env) $ easy_install http://sourceforge.net/projects/dbfpy/files/dbfpy/2.3.0/dbfpy-2.3.0.tar.gz/download

поменяйте версию, если актуальная сменилась.

* (env) — значит, что Вы нужно выполнить команду в виртуальном окружении. Чтобы установить виртуальное окружение:

установить:

$ sudo apt-get install python-virtualenv

создать:

$ virtualenv env

активировать:

source env/bin/activate

чтобы деактивировать, наберите:

deactivate
admin @ 01:35


« Newer PostsOlder Posts »
 

Powered by WordPress