понедельник, 17 октября 2011 г.

2GIS на Линукс

Поставил на древний комп Linux Mint LXDE 11 покопавшись немного с настройоками пришел к выводу, что не хватает привычного 2GIS, чтобы можно было быстренько карту посмотреть как добраться.
Итак..
1) Добавляю репозиторий в файл /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
2) Прописать в sources.list
 deb http://packages.redsolution.ru/2gis hardy non-free
3) Устанавливаем
sudo apt-get install 2gis-ekaterinburg
Всё...

суббота, 8 октября 2011 г.

Samba - это не только танец

Забыл пароль на юзера в самбе :(
Надо вспоминать....а ничего в голову не приходит, кроме как посмотреть конфиг.
Посмотрел - не помогло...
Инет дал подсказку на форуме убунты

Улучшаем админку Evolution

Но мне очень понравилась там одна фишка в админке, а именно: при открытии любого ресурса тырчик сохранения стоит на «Продолжить редактирование». То есть, вы открываете ресурс, редактируете, сохраняете и можно редактировать дальше.
Лично мне это очень удобно, но в Evolution нужно при заходе в ресурс переставить тырчик с «Закрыть» на «Продолжить», что очень раздражает.
Вариант решения простой: нужно сделать плагин, который за меня будет переключать тырчик на нужную позицию.
Создаем плагин (Управление элементами->Плагины->Создать плагин), называем его AlwaysStay и копируем код

$e = & $modx->Event;
if ($e->name == "OnDocFormRender" ||
    $e->name == "OnTempFormRender" ||
    $e->name == "OnChunkFormRender" ||
    $e->name == "OnSnipFormRender" ||
    $e->name == "OnPluginFormRender"
   ) {
      $html = "
          <script type='text/javascript'>
        if(!$('stay').value) $('stay').value=2;
    </script>
      ";
      $e->output($html);
}


На вкладке «Системные события» отмечаем
OnDocFormRender
OnTempFormRender
OnChunkFormRender
OnSnipFormRender
OnPluginFormRender

Сохраняем и все готово.

Заходим в любой документ или сниппет и видим, что тырчик стоит в положении «Продолжить». Если его переставить в положение «Создать новый» — то оно также сохранится.
Если хотите, чтобы плагин не работал на чанках, к примеру, отключите соответствующее событие (OnChunkFormRender).
Сделано на основе хабра

воскресенье, 2 октября 2011 г.

Индикатор

Купил для будущих проектов индикатор - опять же в промэлектронике
WH1602J-YYK-CTK возможно нужно было купить что-нибудь другое, но уж что было под рукой....
Обошелся в 172,52 рубля.
Буду копать как его подключить и как управлять им.
Пока в планах выводить на него значение температуры и освещенности.
Долго боялся подступить к подключению, Но как оказалось ничего сложного нет...нашел 3и статьи:
http://www.pjrc.com/teensy/td_libs_LiquidCrystal.html
http://pobot.ru/topic/show/118/
и совсем уж простая и понятна и с приятным бонусом (подсветка экрана)
http://robocraft.ru/blog/arduino/503.html

Наконец то удалось решить вопрос с кириллицей в отображении экрана
скачать библиотеку 
Проект также доступен на GitHub: https://github.com/mk90/LiquidCrystalRus

Авиабилеты подешевле

Т.к. я поздно проснулся с билетами в сторону Таиланда от Узбекских авиалиний, то начал поиски, где бы купить подешевле.
Вышел на ресурс skyscanner
Прошел процедуру оформления и для надежности выбрал оплатить в отделениях сети Связной и Евросеть.
Сходил до связного, благо рядом и оплатил с карты.
Все прошло гладко - билеты на руках. Вернее как бы реальных билетов нет на руках, только в электронном виде. Так же skyscaner выслал на почту маршрутный лист, который было предложено распечатать и взять с собой.

Обратил внимание после постоянного мониторинга цен...мой билет подешевле перестал появляться примерно недели за 3,5 до вылета...а примерно за 2е недели не осталось дешевых билетов...мораль - билет стоит выкупать - минимум за месяц до вылета...

Цифровой датчик температуры DS18B20+

В общем попробовал различные схемы подключения аналогового датчика температуры LM35 - не удалось его заставить правильно работать совместно с фоторезистором.
Вынужден был купить цифровой датчик температуры, который не имеет такой как LM35 проблемы.
Датчик брал в промэлектронике, впрочем как всю элементную базу DS18B20+
Обошелся в 55,13 рублей.
Подключил его...
В схему необходимо включить сопротивление на 4,7кОм.
Код:

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 4 on the Arduino
#define ONE_WIRE_BUS4

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
{
// start serial port
Serial.begin(38400);

// Start up the library
sensors.begin();
}
 
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");

Serial.print("Temperature for Device is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
delay (10000);
}

Для нормальной работы необходимо подключить библиотеки:
#include <OneWire.h>
#include <DallasTemperature.h>

В понимание работы помогли материалы:
http://pobot.ru/topic/show/122/
http://bildr.org/2011/07/ds18b20-arduino/ 

среда, 21 сентября 2011 г.

Схема фоторезистор и термодатчик

Попробовал собрать одну схему из двух:
1) Фоторезистор
2) Термодатчик
Получилось вот так...
Код вот такой:
int sensorPin = 0;
int tempc = 0;
int photocellPin = 2;    // select the input pin for the photocell
int ledPin = 13;   // select the pin for the LED
int val = 0;       // variable to store the value coming from the sensor


void setup()
{
pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
Serial.begin(38400);
}

void loop()
{
tempc = (5.0 * analogRead(sensorPin) * 100.0) / 1024.0;
Serial.println(tempc);
delay(1000);
 
val = analogRead(photocellPin);    // read the value from the sensor 
Serial.println(val);
if(val<=600){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
delay(1000);
}
Вывод в монитор:
23 Celcius;
668 Light;
35 Celcius;
275 Light;
23 Celcius;
475 Light;
17 Celcius;
651 Light;
31 Celcius;
657 Light;
25 Celcius;
647 Light;
Т.е. термодатчик врет...

понедельник, 19 сентября 2011 г.

Датчик температуры на Arduino

Продолжая копаться в Ардуино был куплен термодатчик LM35 в корпусе TO92.
Схема его подключения простейшая.
Arduino шлет последовательную информацию о температуре, и Вы сможете использовать ее на своем компьютере.
LM35 Температурный Датчик с точностью до 1 сотой градуса.

Подключение:
Нужно только подключить 5V выход от Arduino к 1-му штырьку датчика, заземляющий 3-ий штырек и 2-ой, Вы соединяете с 0-вым Аналоговыми Входом (AnalogIn).

Схема подключения Ардуино и макетки:
Схему рисовал как всегда в программке - http://fritzing.org

Код:
int sensorPin = 0;
int tempc = 0;
void setup()
{
Serial.begin(38400);
}

void loop()
{
tempc = (5.0 * analogRead(sensorPin) * 100.0) / 1024.0;
Serial.println(tempc);
delay(1000);
}
Не забываем в мониторе выставить 38400....
Результатом выполненного кода будет вывод текущей температуры воздуха в монитор (Serial Monitor)
Материал сделан на основе http://pobot.ru/topic/show/12/

пятница, 16 сентября 2011 г.

Датчик освещенности на Arduino

Решил организовать проект на базе Arduino.
Со светодиодами наигрался и в руки попал фоторезистор.
Точное его название не помню (если найду), то укажу, но суть в том что, замерил Омметром сопротивление фоторезистора - мин.=1кОм (свет), макс=8кОм (темнота).

Собрал схемку.


Для проектирования использовал программу http://fritzing.org
Код в IDE.
int photocellPin = 2;    // select the input pin for the photocell
int ledPin = 13;   // select the pin for the LED
int val = 0;       // variable to store the value coming from the sensor


void setup() {
 pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
Serial.begin(38400);
}

void loop()
{
 
 val = analogRead(photocellPin);    // read the value from the sensor 
 Serial.println(val);
 if(val<=600){
   digitalWrite(ledPin, HIGH);
 }
 else{
   digitalWrite(ledPin, LOW);
 }
 delay(1000);
}

Только не забудьте выставить соответствующую скорость порта в Arduino IDE:
и подключиться к порту через иконку Serial Monitor:
Материал на основе блога http://mk90.blogspot.com/

среда, 10 августа 2011 г.

Права для папок и файлов в MODx

При установке MODx постоянно забываю права доступа

assets/cache/ — 777
assets/cache/siteCache.idx.php — 666
assets/cache/sitePublishing.idx.php — 666
assets/images/ — 777
assets/export/ — 777
manager/includes/config.inc.php — 444

понедельник, 8 августа 2011 г.

Учебник по Arduino

Пожалуй стоит начать с консолидации информации по Arduino.
Очень надеюсь, что постепенно дойду до выполнения проекта.

Учебник - http://www.rus-duino.ru/content/znakomstvo-s-arduino#ch2
Качественные уроки на английском - http://tronixstuff.wordpress.com/tutorials

четверг, 4 августа 2011 г.

Wayfinder в MODx

Постоянно возникают сложности в работе с меню у MODx.
А ведь есть удобная штука - Wayfinder
Синтаксис для главного меню...
[!Wayfinder? &startId=`0` &level=`1`!]
Необходимо организовать вывод дочерних по отношению к одной из страниц в отдельном блоке.
Я сделал так:
1) Новый чанк под блок
2) Новый шаблон с учетом вывода нужного чанка
3) В блок вывод [!Wayfinder? &startId=`10`!]

Забыл пароль в MODx

Память совсем плохая стала...
Забываю пароль на админку MODx...потом несколько раз пытаюсь вспомнить и соответственно после 3х попыток идет бан.
Выходить из положения так:

1) идем в PhpMyAdmin
2) таблица : modx_user_attributes
3) поле blockeduntil - там набор цифр - удаляем их и ставим 0
4) таблица : modx_manager_users
5)обзор
6) правка необходимого юзера из списка
7) поле password - там много символов - удаляем их
8) в это поле пишем свой пароль - например password
9) значение функции устанавливаем в - MD5

Очередной раз был вынужден воспользоваться инструкцией - свою актуальность она по прежнему не потеряла, но хотел бы добавить еще одну интересную фичу.

После переноса сайта на новый хостинг валилась ошибка, которая возникала из того, что не были "сброшены" пути в админке, но реквизитов доступа к админке не было, но был доступ к phpMyAdmin.

Так вот по инструкции в п.7 присутствует хеш пароля пользователя.
Идем например на сайт и подставляем там хеш.
При условии, что пасс юзера был простой велика вероятность того, что пароль подберется, в случа если пароль не подошел - только искать реквизиты остается.

Монтирование разделов и дисков в Linux

Чтобы не забыть как работать с монтированием нашел хорошую статью
http://mydebianblog.blogspot.com/2008/09/linux.html

Отмечу, что я делаю со своим жестким диском IDE который "болтается" в системнике
sudo mount -t ext4 /dev/sda /mnt/sda


Отмонтировать
sudo umount /mnt/sda


среда, 3 августа 2011 г.

настройка Transmission

Иногда возникает необходимость в том, чтобы покопаться в Transmission.

Писать для себя мануал по настройке лениво.
Вполне устраивает статья с хабра  - http://habrahabr.ru/blogs/p2p/87287/
Отмечу основное...
Останавливаю демон
sudo killall transmission-daemon

Запускаю демон
sudo transmission-daemon

или
sudo /etc/init.d/transmission-daemon start

четверг, 28 июля 2011 г.

VNC сервер на UBUNTU

Входим в систему как root
Далее устанавливаю VNC сервер и пакеты
apt-get install tightvncserver xfonts-base xfonts-75dpi twm xterm
 
Запускаем VNC сервер 
vncserver -depth 24 -geometry 1280x1024 -nevershared -dontdisconnect 


При первом запуске vnc-сервер попросить нас задать пароль, который будет использоваться для доступа к удаленному рабочему столу. Здесь нельзя использовать длинный пароль – обычно VNC пароль длиной до 8 символов.
Потом нас спросят, хотим ли мы задать view-only пароль? Или задаем или нет, по вкусу.

VNC сервер скажет такое:


New 'X' desktop is ubuntu:5

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ubuntu:5.log
На windows машинке запускаем
vncviewer.exe
Указываем свой IP адрес убунты и номер дисплея...судя по ответу от сервера - 5 дисплей...

Убирать VNC сервер из памяти по окончании сеанса в убунте — vncserver -kill :5

Как бы вот и все...

Можно еще поиграться настройкой шрифтов и т.п. - пока не до того

Сделано по материалам http://habrahabr.ru/blogs/linux/77159/


пятница, 22 июля 2011 г.

Проверка установлен ли пакет

Выполняем команду
dpkg --get-selections | grep <имя пакета>

 Результат примерно такой:
 user@ubuntu:~$ dpkg --get-selections | grep libnl
libnl1                                          install
Посмотреть куда установился пакет:


dpkg -L libnl1

 Результат примерно такой:
 user@ubuntu:~$ dpkg -L libnl1
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libnl1
/usr/share/doc/libnl1/changelog.Debian.gz
/usr/share/doc/libnl1/copyright
/usr/share/doc/libnl1/changelog.gz
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libnl.so.1.1
/usr/lib/i386-linux-gnu/libnl.so.1
 

Установка Deb пакетов в Ubuntu

Debian (DEB) пакеты используются в Ubuntu. Вы можете установить любой Deb пакет на вашу систему. Файлы Deb можно установить при помощи вашего файлового менеджера (Nautilus) просто нажав на них, так как ассоциации установки файлов по умолчанию уже установлены в Ubuntu.
Эти инструкции предназначены для тех, кто желает установить пакеты из командной строки терминала (Terminal).

Установить загруженный Debian (Ubuntu) пакет (Deb):
sudo dpkg -i packagename.deb

Удалить Debian (Ubuntu) пакет (Deb):
sudo dpkg -r packagename

Перенастройка / настройка установленых Debian (Ubuntu) пакетов (Deb):
sudo dpkg-reconfigure packagename

Пример: sudo dpkg-reconfigure mpd

Взято с http://myubuntu.ru/rukovodstvo/ustanovka-deb-paketov-v-ubuntu

четверг, 21 июля 2011 г.

Программная точка доступа (hostapd)

По окончанию настройки доступа в интернет через VPN перехожу к настройке Wifi.
В этом посте отпишу как и чего настроить...

скрипт по настройке VPN (PPTP)

сохраняем содержимое блока в текстовый файл, делаем его исполняемым (chmod +x file) и запускаем ./file
#!/bin/bash

CONFDIR=/etc/ppp/peers

RUNAS=$(id -u $(whoami))

if [ $RUNAS -ne 0 ]
then
echo "Запустите скрипт с правами суперпользователя"
exit 0
fi

echo "Введите имя VPN подключения:"
read CONNAME

if [ -e $CONFDIR/$CONNAME ]
then
echo "Удалить существующий файл конфигурации?"
echo "default: yes"
read DELCONF
case $DELCONF in
y|yes|1) cat /dev/null >$CONFDIR/$CONNAME;;
n|no|0) exit 0;;
*) cat /dev/null >$CONFDIR/$CONNAME;;
esac
else
touch $CONFDIR/$CONNAME
fi

echo "Ведите адрес VPN сервера:"
read SERVER
echo "Введите имя пользователя:"
read USER
echo "Введите пароль: "
read PSWD

for i in "pty \"pptp $SERVER --nolaunchpppd\"" "lock" "noauth" "nobsdcomp" "nodeflate" "noccp" "nomppe" "nomppe-40" "refuse-pap" "refuse-eap" "refuse-chap" "refuse-mschap" "require-mppe-128" "name $USER" "remotename $CONNAME" "ipparam $CONNAME"
do
echo $i >>$CONFDIR/$CONNAME
done

echo "Установить как маршрут по умолчанию?"
echo "default: yes"
read DEFROUTE
case $DEFROUTE in
y|yes|1) echo "defaultroute" >>$CONFDIR/$CONNAME; echo "replacedefaultroute" >>$CONFDIR/$CONNAME;;
n|no|0) echo "" >/dev/null;;
*) echo "defaultroute" >>$CONFDIR/$CONNAME; echo "replacedefaultroute" >>$CONFDIR/$CONNAME;;
esac

echo "Использовать DNS сервера получаемые от VPN сервера?"
echo "default: yes"
read USEPEERDNS
case $USEPEERDNS in
y|yes|1) echo "usepeerdns" >>$CONFDIR/$CONNAME;;
n|no|0) echo "" >/dev/null;;
*) echo "usepeerdns" >>$CONFDIR/$CONNAME;;
esac

echo "Восстанавливать соединение после сбоя?"
echo "default: yes"
read PERSIST
case $PERSIST in
y|yes|1) echo "persist" >>$CONFDIR/$CONNAME;;
n|no|0) echo "" >/dev/null;;
*) echo "persist" >>$CONFDIR/$CONNAME;;
esac

echo "$USER $CONNAME \"$PSWD\" *" >>/etc/ppp/chap-secrets

echo "*** Для запуска соединения используейте команду \"sudo pon $CONNAME\" ***"
echo "*** для отключения \"sudo poff $CONNAME\" ***"
echo ""
echo "Запустить соединение сейчас?"
echo "default: no"
read CONNECT
case $CONNECT in
y|yes|1) pon $CONNAME; sleep 10; ifconfig ppp0;;
n|no|0) exit 0;;
*) exit 0;;
esac

Взято с http://forum.telenet.ru/index.php?showtopic=209497
 

VPN для Kabinet

Для работы с провайдером Kabinet необходимо настроить VPN соединение
Следует отметить, что для работы VPN, потребуется установка пакета pptp-linux

Предварительно "убиваем" network-manager
apt-get remove network-manager



Ещё вариант "убийства" network-manager
update-rc.d -f network-manager remove
это удалит ссылки на network-manager из всех /etc/rcX.d/ каталогов

Настройка сети:
/etc/network/interfaces

iface eth0 inet static
  address <ip>
  netmask <mask>
  gateway <gateway>
/etc/resolv.conf

nameserver 87.224.197.1
nameserver 87.224.213.1

Первичную настройку VPN можно произвести
pptpsetup --create <telenet> --server 10.0.0.1 --username <your_login> --password <your_password> --encrypt

После чего редактируем /etc/ppp/peers/telenet

pty "pptp 10.19.0.1 --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
++noccp
name <your_login>
remotename <telenet>
ipparam <telenet>
require-mppe-128
++defaultroute
++replacedefaultroute

++ - добавляем noccp чтобы отключить сжатие, defaultroute и replacedefaultroute чтобы изменить таблицу маршрутизации в соответствии с вновь созданным подключением (весь трафик кроме локального идет через впн)
++ перед строками добавлять не нужно

Я бы еще добавил параметры
maxfail 0 - всегда пытаться подключиться при отсутствии связи;
lcp-echo-interval 10 - интервал времени, по прошествии которого, происходит опрос удаленной стороны;
lcp-echo-failure 3 - количество не отвеченных запросов удаленной стороны, после чего система считает, что нас отключили;
persist - пытаться по новой открыть соединение, когда оно закрывается;
это даст постоянной мониторинг соединения, а при разрыве связи автоматический реконнект
еще в когфиг можно добавить
usepeerdns - чтобы получать DNS сервера автоматически от VPN сервера

Т.о. окончательный конфиг /etc/ppp/peers/telenet


pty "pptp 10.0.0.1 --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
noccp
name <your_login>
remotename <telenet>
ipparam <telenet>
require-mppe-128
defaultroute
replacedefaultroute
maxfail 0
lcp-echo-interval 10
lcp-echo-failure 3
persist
usepeerdns


Пароля в данном файле нет, он сохранен в /etc/ppp/chap-secrets и подключается в основной конфиг строчкой remotename <telenet>
cat /etc/ppp/chap-secrets

<your_login> <telenet> "<your_password>" *

Для диагностики соединения можно запустить соединение pppd call <telenet> debug nodetach
В случае успешного соединения получите нечто вроде:

# pppd call <telenet> debug nodetach
using channel 27
Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc8739559> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <auth chap MD5> <magic 0x92558859>]
sent [LCP ConfAck id=0x1 <auth chap MD5> <magic 0x92558859>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xc8739559> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0xc8739559]
rcvd [CHAP Challenge id=0x1 <02783684f04fcb45d48b536a44f9edfd>, name = "fttb-bras1"]
sent [CHAP Response id=0x1 <eb23523f88a20f485f7dc4a8b09dbf58>, name = "<login>"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 10.19.0.1>]
sent [IPCP ConfAck id=0x1 <addr 10.19.0.1>]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x2 <addr 217.114.233.240>]
sent [IPCP ConfReq id=0x3 <addr 217.114.233.240>]
rcvd [IPCP ConfAck id=0x3 <addr 217.114.233.240>]
not replacing existing default route via 192.168.1.1
Cannot determine ethernet address for proxy ARP
local  IP address 217.114.233.240
remote IP address 10.19.0.1
Script /etc/ppp/ip-up started (pid 14845)
Script /etc/ppp/ip-up finished (pid 14845), status = 0x0

А после того, как подключение проверено на работоспособность, добавить в /etc/network/interfaces

auto kabinet
iface kabinet inet ppp
provider kabinet
pre-up ip link set eth1 up

где kabinet - имя соединения, eth1 - физический интерфейс на кабинет
это даст автоматическое поднятие vpn при старте системы
чтобы в дальнейшем подключать впн достаточно от имени рута выполнить pon <telenet> либо настроить sudo, чтобы выключить poff <telenet>

PS параметры заключенные в < > должны быть изменены в соответствии с вашими настройками

Взято и переработано с http://forum.telenet.ru/index.php?showtopic=209497