воскресенье, 11 марта 2012 г.

Emacs deep dired mode


M-x wdired-change-to-wdired-mode

вторник, 28 июня 2011 г.

Как расшарить Интернет по Wi-Fi

Исходное состояние: витая пара приходит на одну машину (eth0), а Интернет нужен на многих. Из бесконечного количества всевозможных вариантов описываю наиболее очевидный - через коррекцию пакетов посредством штатных средств iptables.
  1. Настраиваем раздающую машину на лирический лад:
    • sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      
    • sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    • расскомментируем строку net.ipv4.ip_forward=1 в /etc/sysctl.conf
    • перезагрузим сетевые соединения sudo /etc/init.d/networking restart
  2. Настраиваем клиентскую машину посылать пакеты туда, куда нужно:
    • Прописываем шлюз по-умолчанию:
      sudo route add default gw 192.168.100.1
      
      последний - ip address head machine WiFi card
    • Прописываем DNS по-умолчанию:
      sudo sh -c "echo 'nameserver 8.8.8.8' >> /etc/resolv.conf"
      
      При желании и знании 8.8.8.8 (Google DNS) следует заменить на адрес вашего локального.
  3. Проверяем работоспособность!
  4. Пьём воду, чай, кофе, пиво или водку и радуемся жизни и жизни в Интернете!

воскресенье, 9 января 2011 г.

Создание csv файлов через MySQL

_mysql_exceptions.InternalError: (1, "Can't create/write to file '/home/antony/job/join/result.csv' (Errcode: 13)")
Основной загвоздкой стало, что по умолчанию пользователю MySQL не дано права записи и чтения файлов и урезано право записи в файловую систему. Первое решается через 
GRANT FILE ... для нужного пользователя.
Второе - сложнее в 4 ступени:

  1. Указать директорию с правом на запись для MySQL:  sudo gedit /etc/apparmor.d/usr.sbin.mysqld;
  2. Добавить строку с нужным каталогом: /<path/to/output/directory>/* w,;
  3. Перезапустить MySQLd: sudo service mysql restart;
  4. Сменить права директории, чтобы у пользователя mysql было право записи.
Теперь Мускул может писать файлы в указанную вами директорию.

среда, 22 декабря 2010 г.

Linux Ubuntu 10.04 and GAE SDK

  1. Download & install virtualenv;
  2. Add to strings into bottom /etc/apt/sources.list:
    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
  3. sudo apt-get update
  4. sudo apt-get install python2.5
  5. python2.5 virtualenv/virtualenv.py --no-site-packages GAE
  6. source GAE/bin/activate
(GAE)antony@cosmo-laptop:~/Projects$ python
Python 2.5.5 (r255:77872, Sep 14 2010, 17:19:13) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
(GAE)antony@cosmo-laptop:~/Projects$ 
 After that manipulation you can run GAE SDK scripts though out this virtual development environment. (!)
(GAE)antony@cosmo-laptop:~/Projects$ python google_appengine/dev_appserver.py apps/ae-01-trivial/

INFO     2010-12-22 17:06:34,651 appengine_rpc.py:153] Server: appengine.google.com
Allow dev_appserver to check for updates on startup? (Y/n): y
dev_appserver will check for updates on startup.  To change this setting, edit /home/antony/.appcfg_nag
INFO     2010-12-22 17:07:06,733 appcfg.py:414] Checking for updates to the SDK.
INFO     2010-12-22 17:07:07,621 appcfg.py:444] This SDK release is newer than the advertised release.
WARNING  2010-12-22 17:07:07,622 datastore_file_stub.py:573] Could not read datastore data from /tmp/dev_appserver.datastore
WARNING  2010-12-22 17:07:07,644 dev_appserver.py:3698] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
INFO     2010-12-22 17:07:07,660 dev_appserver_main.py:485] Running application ae-01-trivial on port 8080: http://localhost:8080

Install PIL module on main system:
cd /tmp/
wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg
sudo sh setuptools-0.6c11-py2.5.egg
sudo apt-get install python2.5-dev
sudo apt-get install libjpeg62-dev
sudo easy_install-2.5 pil

In virtual environment:
(GAE)antony@cosmo-laptop:~/Projects/GAE$ pip install PIL

вторник, 7 декабря 2010 г.

SetUp Pylons development environments on Ubuntu 10.04

  1. SimpleSite$ python go-pylons.py mydevenv;
  2. SimpleSite$ source mydevenv/bin/activate;
  3. (mydevenv)SimpleSite$ cd simplesite/;
  4. (mydevenv)SimpleSite$ python setup.py develop;
  5. (mydevenv)SimpleSite$ paster setup-app development.ini.
Vuala! You can see output from script creating tables in database. If it not so - you must properly configure database access.

среда, 1 сентября 2010 г.

PostgreSQL с нуля

Тема первичного запуска связки клиент-сервер кокетливо упущена разработчиками официального руководства, поэтому пришлось заполнить этот пробел поисками, что указали на следующую последовательность:

  1. Инсталлим, собственно, весь Postgre;
  2. Врываемся на сервер:

    sudo su postgres -c psql postgres
    после подкрепления вашим паролем последует сообщение, что-то вроде:

    psql (8.4.4)
    Type "help" for help.


    postgres=#
  3. Вводим:

    ALTER USER postgres WITH PASSWORD 'password';
    там, где вместо окавыченого пароля надо вставить тот, что вам нравится.
  4. Выходим:
    \q
  5. Заходим так, как надо:
    sudo su postgres

воскресенье, 15 августа 2010 г.

Ubuntu, virtual host creating through Apache2

Задавшись целью настроить возможность одновременной работы над несколькими Web-programming проектами, натолкнулся на сложность настройки виртуального хостинга для Apache2. Итак: вы хотите одновременно разрабатывать несколько проектов (site1, site2, site3) на вашей локальной машине. Для этого:
  1. Откроем файл /etc/hosts. Там будет строка:


    127.0.0.1 localhost
    После слова localhost через пробелы можно добавлять какое угодно количество псевдонимов сайтов для данного IP. Добавим наши сайты. Теперь этот кусок файла примет вид:


    127.0.0.1 localhost site1 site2 site3
  2. Добавим в хвост /etc/apache2/apache2.conf строку, что заявляет индейцу о существовании именных виртуальных хостов:


    NameVirtualHost 127.0.0.1:80
  3. Создадим конфигурационные файлы site1, site2, site3 по образцу default в директории /etc/apache2/sites-available/:


    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site{1, 2, 3}
  4. Изменим каждый из них вот тут:


    <VirtualHost *:80>
            ServerAdmin webmaster@localhost

            DocumentRoot /var/www
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
    заменив  /var/www на путь до корневой директории каждого из ваших локальных сайтов
  5. Добавим каждый виртуальный хостинг для использования его индейцем:


    sudo a2ensite site{1, 2, 3}
  6. Передёрнем индейца:


    sudo apache2ctl -k restart
Вуа-ля. Обращаться к каждому теперь можно просто вбив его псевдоним  site{1, 2, 3} в адресную строку браузера.

Как добавлять виртуальные именные хостинги понятно. А удалять их из использования следует командой: sudo a2dissite site{1, 2, 3}