2012-02-10

Git репозиторий с нестандартным номером порта

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

git remote add office ssh://username@hostname:2222/home/maxim/repository/

Обратите внимание на приставку ssh:// - без нее ничего не получится.

отсюда

 

Оставить комментарий

 
  2012-01-31

Собственный домен для Amazon S3

Amazon представляет замечательный сервис для хранения данных в облаке известный как Amazon S3. Но при всей своей замечательности файлы, хранимые в облаке, имеют доменное имя http://s3.amazon.com/[имя корзины]/путь/к/файлу.gif. Ежу понятно, такое имя совершенно некрасиво и хочется, чтобы оно было покрасивее. Разработчики пошли нам навстречу и сделали, чтобы к файлу можно было обращаться по имени http://[имя корзины].s3.amazon.com/путь/к/файлу.gif

Немного лучше, но не айс - всё равно, доменное имя некрасивое. Оказывается, для S3 можно указать собственное доменное имя третьего уровня. Для этого достаточно именем корзины выбрать желаемое доменное имя и создать CNAME запись со ссылкой на амазоновский сервер.

Алгоритм работы следующий:

1. Создаем корзину с именем домена для наших файлов (в моем случае это s3.o.itaccept.ru)
2. Создаем CNAME запись для домена третьего уровня ссылающуюся на s3.amazonaws.com

Если все получилось но после обновления DNS ваши файлы будут видны по трем адресам: http://s3.o.itaccept.ru.s3.amazonaws.com/folder2/banner.jpg, http://s3.amazonaws.com/s3.o.itaccept.ru/folder2/banner.jpg, http://s3.o.itaccept.ru/folder2/banner.jpg

 

Оставить комментарий

 
  2012-01-20

Как вернуть некачественную стиральную машину

Несколько месяцев назад приобрел я новую стиральную машину взамен сломавшейся. Сломавшейся машиной была Ardo и хотя она проработала всего шесть лет купить решил той же марки, чтобы не нужно было привыкать к новому интерфейсу. Прошёл по магазинам города и понял что лучший выбор и цены в Реванше, где и заказал машинку. На следующий день машинку мне уже доставили до квартиры - я самостоятельно её втащил в дом, распаковал и подключил в ванной, благо, все коммуникации у меня уже были выведены.

Через пару недель машинка стала вести себя странно - программа выполняется, машинка исправно мигает лампочками, переключается с режима на режим, но нет звука вращающегося барабана и в конце бельё остается остается не отжатым. Похоже, что по какой то причине барабан перестал вращаться. С момента покупки прошло 15 дней.

Позвонил в Реванш, где покупал машинку, описал ситуацию. В Реванше прятный женский голос сказал куда мне надо идти попросил обратиться в сервис центр ЭЛ-Сервис, занимающийся гарантийным ремонтом стиральных машин Ardo, в сервис-центра мне со второго раза удалось вызвать мастера. Мастер пришёл через несколько дней, разобрал машинку, проверил контакты, собрал, в результате этих нехитрых действий машинка перестала включаться вообще. Сказал, что хрен его знает что за фигня, давайте попробуем поменять ей мозги для начала, но не факт, что поможет что требуется замена управляющего блока, о чем написал соответствующую бумажку. Также сказал, что чтобы поменять блок, нужно заказывать его из Ardo, а это занимает довольно продолжительное время и, что машинку у меня он должен забрать для проведения более полной диагностики. Следует сказать, что за время пока я ждал прихода мастера у меня накопилась кипа нестиранного белья и перспектива остаться без стиральной машины на неизвестно какое долгое время меня не сильно вдохновляла. Я сказал, что машинку я ему не отдам а отдам я её в магазин где она была куплена. Мастер, мне кажется, даже обрадовался, написал бумажку с описанием неисправности и ушел.

После этого сел изучать вопрос. Выяснил прекрасное. Оказывается, согласно новой редакции закона о защите прав потребителей, вернуть товары относящиеся к категории технически сложных товаров можно только в течении двух недель с момента покупки - к этой категории относятся и стиральные машины. Если товар сломался по прошествии более двух недель, то только гарантийный ремонт. В моём случае прошло чуть больше двух недель. Правда, в законе есть несколько допущений,  вернуть товар можно, но только если неисправность "существенная". Вот только, определение существенности в законе не приводится, вернее в предыдущих редакциях оно было, но из текущей редакции его убрали заменив какими-то туманными формулировками. В предыдущей редакции было сказано, что если дефект не дает использовать устройство по-назначению, значит он существенный, в текущей редакции такого нет и все отдается на рассмотрение суда. Но судом нас не испугаешь, ведь, к счастью, суды у нас пока в таких делах встают на сторону потребителя и это сильно упрощает дело.

Итак есть задача: есть грязное бельё его нужно постирать, для этого нужна машинка. Для решения данной задачи, я составил две претензии - одну, где требую поменять неработающую стиралку на такую же но работающую или аналогичную машинку и вторую претензию где требую возвратить деньги. Одну на случай, если руководство магазина пойдет мне на встречу и заменит машинку в тот же день, вторую, если придётся решать дело через суд.

В Реванше мило пообщался с местным товароведом Андреем Александровичем, который сказал, что такие вещи быстро не делаются, претензию должен изучить юрист, затем вынести соответствующий вердикт, поэтому я оставил в магазине ту претензию где требовал вернуть деньги. В тот же день, в том же Реванше купил другую стиральную машину HotSpot Ariston. Её мне также привезли на следующий день - доставка в них отлажена просто замечательно.

Все это время сломанная машинка стояла рядом в коридоре, я уже был готов, что она там будет стоять долго ибо если дело решать через суд это будет длиться несколько месяцев. Но каково же было моё удивление, что через несколько дней мне позвонила юрист из Реванша и сказала что претензию они удовлетворят машинку заберут и вернут мне деньги.

В Реванш мне всё же пришлось прийти ещё два раза, один раз оформить возврат, и после того как забрали машинку прийти за деньгами. На этом история с машинкой закончилась. Hotspot Ariston прилежно работает (тук тук по дереву) и, если честно, мне эта машинка нравится даже больше - интерфейс сделан для людей, гораздо более приятный и информативный.

Техника Ardo уже не та. Приятно порадовал магазин Реванш, не стали доводить дело до суда,  сделали все чётко по инструкции. Качество техники в наши дни значительно снизилось, и продолжает постоянно снижаться, и можно понять продавцов, которые эту технику продают и имеют все прелести общения с покупателями.

Не хотел всё это писать в блог, но вот сегодня эта история получила неожиданное продолжение, на телефоне раздался звонок с неизвестного номера, это позвонил мастер из сервис-центра смотревший машинку - оказывается он все-таки заказал процессор для машинки и сегодня этот процессор  приехал в сервис-центр, о чудо! Прошло всего то два с половиной месяца! Вот только ставить его теперь некуда.

Upd: выложил образец претензии который я сочинил, может кому пригодится.

 

Коментариев: 6

 
  2011-12-12

Как послать почту через google smtp через коммандную строку

Иногда нужно послать почту через коммандную строку используя внешний SMTP сервер.

1. Создаем файл ~./mailrc

set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=youraddress@gmail.com
set smtp-auth-password=Password
set from="youraddress@gmail.com(Your Name)"

2. Набираем:

> mailx -v -s "your subject" tosend@servertosend.ru

Вводим текст сообщения и набираем \n.\n

 

Оставить комментарий

 
  2011-10-14

Как найти расстояние между двумя GPS точками

Понадобилось посчитать дистанцию между двумя точками заданными в GPS координатах. В PHP реализация такой фунции выглядит следующим образом:

function calcMiles ($Lat1, $Lon1, $Lat2, $Lon2){
    return 3958.75 * acos(  sin($Lat1/57.2958) * sin($Lat2/57.2958) + cos($Lat1/57.2958) * cos($Lat2/57.2958) * cos($Lon2/57.2958 - $Lon1/57.2958));
}

Ответ получается в милях, для перевода в метры, полученное значение нужно ещё умножить на 1609.344.

Код взял с phpclasses.com. Кстати, глядя на код оригинального класса можно сделать вывод, что автор обладает хорошим чувством юмора - он реализовал вывод результата в десятках различных единиц, включая нанометры, парсеки и световые года.

 

Оставить комментарий

 
  2011-10-11

Тень на плетень

Создание тени средствами CSS:

Бой с тенью

<b style="font-size: 2em; color: silver; text-shadow: 2pt 2px 2px rgb(127, 127, 127);">Бой с тенью</b>

Работает в Firefox, Crome, Opera.

 

Оставить комментарий

 
  2011-09-28

Как вводить японские иероглифы в Ubuntu

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

Здесь подробно написано как установить IME на Ubuntu 10.04 - у меня прекравсно все встало с первого раза.

お疲れさまです。

 

Оставить комментарий

 
  2011-08-23

Как поставить dav_svn если у вас cpanel

Опять возникла необходимость сделать репозиторий с доступом через http на сервере с cpanel. Ранее я уже об этом уже писал, но половина ссылок в том посте на сегодняшний день уже не работают, поэтому пришлось восстанавливать инструкцию заново, наступая на те же грабли повторно. На этот раз пост без ссылок - просто инструкция шаг за шагом:

Скачиваеме исходники Subversion и распаковываем:

> wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz

> tar -xzf subversion-1.6.17.tar.gz

Скачиваем SQLite распаковываем и копируем в папку с Subversion:

> wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz

> tar -xzf sqlite-autoconf-3070701.tar.gz

> cp -r sqlite-3.6.13 subversion-1.6.17/sqlite-amalgamation

Теперь компилируем и устанавливаем:

> ./configure --with-ssl --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apache/bin/apr-config --with-apr-util=/home/cpeasyapache/src/httpd-2.0.63/srclib/apr-util

> make

> make install

Создаем репозиторий:

> mkdir /home/username/data

> mkdir /home/username/data/svn

> cd /home/username/data/svn

> svnadmin create --fs-type fsfs repo

Настраиваем конфигурационные файлы апача:

> vi /usr/local/apache/conf/userdata/std/2/username/svn.hostname.com/custom.conf

Содержимое файла:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
        DAV svn
        SVNParentPath /home/svncleve/data/svn
        SVNListParentPath on
        SVNPathAuthz off
        AuthType Basic
        AuthName "Private SVN repositories"
        AuthUserFile /home/username/svn.passw
        Require valid-user
</Location>

Задаем пароль для пользователя SVN:

/usr/local/apache/bin/htpasswd  /home/svncleve/svn.passw svnuser

Проверяем конфигурацию сервера, пересобираем конфиги и рестаруем сервер:

/scripts/verify_vhost_includes

/scripts/rebuildhttpdconf

/scripts/restartsrv_httpd

Делаем чистый чекаут на локальной машине:

> svn checkout http://hostname.com/svn/repo .

Если svn update работает хорошо а svn commit выдает 403 ошибку то проверьте .htaccess в document root - cpanel по умолчанию пишет в .htaccess правила, ограничивающие использование методов PUT и DELETE - а именно они как раз и используются в WEBDAW через который работает Subversion. Несколько раз уже на это напарывался.

 

Оставить комментарий

 
  2011-08-12

DNS сервер на домашнем компьютере

Собственный DNS сервер для веб-разработчиков очень удобная вещь. Если локальный компьютер используется для разработки и на нем установлен Apache с несколькими десятками виртуальных доменов то прописывать все виртуальные домены в файле hosts довольно кропотливо. Со временем hosts превращается в полнейшую свалку а собственный DNS сервер позволяет организовать все гораздо компактнее и удобнее.

Обычно, чтобы отличать локальные сайты от всех других я им даю фиксированный суффикс по имени компьютера на котором они крутятся, например: ztools.maxhome - это локальная версия ztools.org на домашенем компьютере, maxistar.maxhome - локальная версия maxistar.ru, ztools.maxbook - версия ztools.org на ноутбуке и так далее.

Рассмотрим пример установки DNS сервера на локальный компьютер под управлением Linux, сделаем так, чтобы ВСЕ сайты с суффиксом .maxhome ссылались на локальный компьютер, с суффиксом .maxbook на ноутбук и так далее.

Итак, имеем машину с Ubuntu, устанавливаем на него DNS сервер:

> apt-get install bind9

добавляем в /etc/named.conf.local следующее:

zone "maxhome" {
     type master;
     file "/etc/bind/db.maxhome";
};

/etc/bind/db.maxhome - это файл зоны который нам предстоит создать, чтобы не создавать с нуля скопируем один из файлов в папке /etc/bind и отредактируем:

> cp db.local db.maxhome

после редактирования файл выглядит следующим образом (изменения помечены жёлтым):

; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      maxhome.
@       IN      A       192.168.1.101
@       IN      AAAA    ::1
*       IN      A       192.168.1.101

Обратите внимание на последнюю строку со звездочкой - она самая главная! Аналогичным образом создаём файлы зон для других компьютеров.

Теперь перегружаем наш DNS сервер:

maxim@maxim-desktop:~$ sudo /etc/init.d/bind9 restart
* Stopping domain name service... bind9                                 [ OK ]
* Starting domain name service... bind9                                 [ OK ]

На всех машинах на которых мы хотим иметь доступ к локальным ресурсам в свойствах сетевого подключения ставим IP адрес машины с установленным DNS сервером в качестве DNS сервера и проверяем как работает:

maxim@maxim-desktop:~$ ping dfdfd.maxhome
PING dfdfd.maxhome (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from 192.168.1.101: icmp_seq=3 ttl=64 time=0.044 ms
^C
--- dfdfd.maxhome ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2179ms
rtt min/avg/max/mdev = 0.044/0.046/0.050/0.003 ms

Теперь любое сочетание символов xxxx.maxhome будет разрешаться на домашний компьютер, причем аналогичным образом можно создать файлы для других компьютеров в нашей домашней сети и всегда будет ясно на каком компьютере какой сайт расположен. Теперь не нужно каждый раз после создания нового виртуального домена редактировать файл hosts на всех компьютерах.

 

Коментариев: 1

 
  2011-08-07

Как поставить автомагнитолу в Hyundai Getz

Штатная аудиоподготовка у Hyundai Getz имеет нестандартный разъем, поэтому, подключить в него магнитолу сразу не получится. Поиск в интернет подсказывает, что для этого лучше всего воспользоваться специальным переходником Hyundai-ISO, который можно купить на Митинском рынке, в Москве. К сожалению, в Саратове нет ни одного Митинского рынка а про переходник не знают даже в специализированных магазинах. Специалисты в сервисе, просто обрезают родные разъемы и скручивают провода как надо, за все удовольствие берут 650-1000 рублей.

Но мне вариант со скручиванием почему то не понравился, да и захотелось самому повозиться :)  Я поступил так:

Снял заглушку на месте автомагнитолы при помощи отвертки аккуратно поддев последнюю сверху.

Вынул из разъема магнитолы провода с контактами и вставил эти контакты в оригинальный разъем аудиоподготовки машины предварительно заизолировав до половины изолентой для предотвращения случайного замыкания. Чтобы вынуть контакт из разъема его нужно немного поддеть, например, обычной канцелярской скрепкой или куском проволоки, или же просто посильнее потянуть. Вставляется сам контакт в разъем Hyunday довольно туго - он немного шире чем контакт на разъеме - но плоскогубцы решают все проблемы.

Вот распиновка оригинального разъема на Hyundai Getz:

На всякий случай прозвонил разъем тестером - контакт 15 оказался не подсветкой дисплея (+) а скорее землей, поэтому его я не стал использовать.

Распиновка разъема ISO автомагнитолы:

После подключения всех контактов разъем стал выглядить вот так:

После того как самая сложная часть работы осталась позади, вставил антену и поставил магнитолу на штатное место - салазки магнитолы не пригодились - они не влезают. Саму магнитолу зафиксировал обрезками упаковочного вспененного полиэтилена - он отлично гасит вибрации.

Все заработало с первого раза без проблем.

UPD. На схеме разъема M16 изображена ответная часть а не сам разъём - реальный разъем соответственно имеет зеркальное расположение контактов, что без труда видно по форме выемок на разъеме - мне было лень зеркалить изображение разъема - думал это очевидно :) Будьте внимательнее!

 

Коментариев: 5