2007-11-17

Дешевый межгород с sipnet.ru

Все необходимое для подключения, настройки и контроля находится на страничке http://www.sipnet.ru/

Прежде всего нужно зарегистрироваться:
https://customer.sipnet.ru/cabinet/register
тонкости:
  • нужно заполнять все поля (можно совершенно левой информацией, главное заполнить и запомнить Имя/Логин, Пароль, Электронная почта т.к. туда придет активация и Контрольное число)
  • даты вводятся в формате дд/мм/гггг. Пр: 23/02/2007
После регистрация на указанный email придет письмо с ссылкой для активации (проверка что вы не робот).

После этого вы можете заходить в свой "личный кабинет": справа-внизу на главной странице http://www.sipnet.ru/ есть поля для ввода имени и пароля.

В личном кабинете наверху указан ваш SIP ID - по сути ваш "номер телефона". Например мой: 2983927
На него можно позвонить из других SIP сетей в Internet набрав:
2983927@sipnet.ru
Внимательно запишите его на бумажку т.к. именно его надо указывать для зачисления денег на счет в Евросети.

В личном кабинете идете в раздел: Скачать файлы.
Выбираете SIPpoint (Программный агент для SIPNET). Скачиваете, запускаете для установки.

Запускаете SIPPoint. Заходите в Файл|Параметры.
Вводите ваш SIP-адрес: sipid@sipnet.ru, в моем случае: 2983927@sipnet.ru
Учетное имя: sipid, в моем случае 2983927
Пароль: пароль указанный при регистрации
OK. После чего телефон должен зарегистрироваться на сайте - иконка станет зеленой и в строке статуса будет "В сети".
Переходите на закладку "Телефоны", вводите номер в формате код_страны код_города номер, например: 74951234567 или 79173411111 и звоните, звоните, звоните!

У них идет акция и звонки на стационарные телефоны
Россия, Москва $0.000
Россия, Санкт-Петербург $0.000
На счету сразу есть 1$, но я рекомендую положить туда рублей 100. Иначе иногда в разговор будет вставляться реклама ;-)
Чтобы позвонить другому пользователю SIPNET, например мне, надо набрать его sipid.

Для качественной связи нужна гарнитура (наушники и микрофон) или USB-телефон (продаются в той же Евросети), например такой: http://skypemate.ru/catalogue/?wid=4 .

Если SIPPoint Вас утомит, то есть другие варианты программных телефонов:
http://www.sipnet.ru/orderandpay/software.html

Инструкция по их настройке есть в Internet, но по сути главные параметры там: sipnet.ru, sipid@sipnet.ru и пароль.

PS: не забывайте о том, что голос генерирует довольно большой трафик. Многое зависит от того, куда и с какого телефона Вы звоните. Поэтому рекомендую провести несколько тестовых звонков, чтобы оценить качество и посмотреть какой счет выставит Вам Ваш Internet-провайдер.
Скорее всего, на текущий момент развития Internet в России, качество будет приемлимым, а совокупная стоимость звонка (плата sipnet + плата за трафик) заметно ниже стоимости такого же звонка с городского или мобильного телефона.

Mobile World War!

http://code.google.com/android/

http://www.openhandsetalliance.com/

Blog:
http://android-developers.blogspot.com/2007/11/android-first-week.html

оттуда интересная статья:
http://www.onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html

http://devphone.com/category/android

Поднимается очень сильный ветер...

2007-10-14

Преимущества Java для разработки server side jobs.

Преимущества:

1. Широко известная возможность Java программ работать на разных платформах БЕЗ ПЕРЕКОМПИЛЯЦИИ.
Т.е. тщательно оттестированная программа, с большой вероятностью (если зависимости от платформы не внес по небрежности сам программист, но это находится и правится)
будет работать везде, где есть эта и выше версия JRE.
С использованием .conf-файлов, можно вынести все платформозависимые части из исходников (ex: пути к shell скриптам, regexp для разбора вывода shell скриптов, etc).
С использованием wrappers, таких как: http://wrapper.tanukisoftware.org/ можно запустить программу как сервис Windows или демон Linux/Solaris/HPUX/etc.

2. Дополнительный уровень абстракции (JVM и байт-код), позволяют меньше беспокоиться о том, что
- сервис “завалит” всю платформу или
- будет найдена уязвимость позволяющая получить права root unsafe коду.
Использование JDBC драйверов написанных полностью на Java, позволяет сократить количество ПО, которое требуется установить на сервер.

3. В отличие от (обычно) монолитного .exe файла, в который слито все, что нужно для работы. Классы Java образуют истинную модульность, позволяя модифицировать (обновлять) небольшие куски приложения, ДИНАМИЧЕСКИ определять что будет загружено и догружать по мере необходимости (в том числе из БД, сети).

4. Для Java существует большое количество функционально богатых широко протестированных библиотек логирования, с возможностью удобно группировать логируемую информацию по категории (обычно полный.путь.к.классу.Класс) и важности (trace, debug, info, warn, error). Без каких-либо изменений в исходном коде, логирование может быть отфильтровано, перенаправлено на консоль, по почте, в syslog, БД, файл, и даже лог windows. Новые библиотеки, такие как http://slf4j.org/ позволяют варьировать фактическую библиотеку логирования на конечной системе и практически до нуля снизить потерю производительности от логирования (параметризованые сообщения и отключение лишних логов).

5. Исключения Java помимо традиционных ТИПА исключения и поясняющего сообщения (message) содержат:
а) полный стек на момент создания исключения (stackTrace), включающий названия классов, методов, исходных файлов и номера строк в них;
б) «причину» (cause) - другое исключение (которое также может содержать cause), которое явилось причиной создания этого, что позволяет не тащить на верхние уровни абстракции низкоуровневые исключения, но при желании иметь возможность детально разобраться в том, что случилось.

6. Наиболее важным достижением (можно сказать уникальным на сегодняшний день) Java можно считать т.н. checked exceptions.
Если Вы встретите того, кто уверяет, что checked exceptions это плохо, смело плюньте ему в глаза.
Для разработки надежных устойчивых приложений checked exceptions полезны чрезвычайно!

Поясню на примере: в простом коде, открывающем соединение к БД, выполняющем запрос и генерирующем по полученным данным файл, порядка 80% строк могут сгенерировать исключения (драйверов БД нет, ошибка подключения к БД, ошибка работы с БД, ошибка работы с файлом и т.д.).
В случае Java и checked exceptions компилятор предупредит Вас обо всех проблемных участках и предложит что-то сделать (игнорировать, передавать наверх в чистом виде, передавать наверх «обернув», обрабатывать), т.е. полученный код сразу, после того как скомпилируется, будет устойчив к большинству ошибок! Это разительно отличается от ситуации, например, в Delphi, где любой вызов стандартной библиотеки, библиотеки логирования, библиотеки доступа к БД и т.д. может закончиться неожиданным исключением. Частично Вы найдете описание генерируемых исключений в документации, частично будете отлавливать в течении длительного времени, в процессе рабочей эксплуатации.

7. Мелкая радость для тех, кто в теме: sleep, wait, join и т.д. можно прервать из другого потока и они сгенерируют InterruptedException. На Delphi у меня была собственная библиотека с наследником Thread и заменой sleep (используя события).

К замеченным недостаткам Java можно отнести:
1. Крайне потребительское отношение к оперативной памяти. Java очень любит память ;-(

2. Меньший объем предложений хостинга в сравнении с PHP и Perl.

p.s.
Мелкие хотелки по синтаксису языка (syntax sugar ;-)
1. is вместо instanceof.

2. Объект as Тип вместо (Тип)объект т.к. приходится почти всегда делать ((Тип)объект).метод.

3. in для любых типов и .. для перечислимых типов, т.е:
чтобы можно было писать if (myStr in ("bla", "БЛА", "BLA", "бла")), if (myInt in (1,5,7..300)),
case 1..300: case 400:.

4. чтобы в switch () case могли участвовать любые объекты, а не только целые и enum.


2006-11-24

Удобный доступ к сайтам в zip архиве

Обнаружил интересную возможность: нормально просматривать сайт, сохраненный в локальном zip архиве.
Т.е. имеем скачанный ручками, teleport Pro или иным способом сайт.
Он представляет из себя кучу мелких файликов (сжирающих на NTFS кратное 4к место и безобразно выглядящих).
Если сжимаем в ZIP становится красиво и компактно, но сложно пользоваться (ссылки не работают, картинки не показываются).

Решение:
ставим JDK

после чего задаем в Firefox путь вида:
jar:file:///D:/DOC/mysite.zip!/dir1//index.htm

работает практически прозрачно (есть мелкие глюки с JS)

2006-10-13

На память: нужна ли лицензия контент-провайдеру?

Очередным субъектом налоговых претензий ФНС стали "Мобильные ТелеСистемы".
Наряду с "ВымпелКомом" МТС придется отстаивать правоту отнесения расходов на услуги контент-провайдеров к расходам по налогу на прибыль.


Александр Титов - выпускник МГЮА; общий стаж юридической
практики более 4-х лет. Работал в юридическом отделе Управления Россвязьнадзора
по Москве и Московской области, в телекоммуникационных компаниях.

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

Член постоянно действующей рабочей группы по проблемам развития систем
беспроводного широкополосного фиксированного доступа отраслевого отделения
"Операторы связи" Общероссийской общественной организации "Деловая Россия".

Читать все колонки автора


Продолжение под катом...


Федеральная налоговая служба (ФНС) насчитала МТС недоимку по итогам проверки отчетности за 2003-2004 гг. в размере 1,28 млрд. руб., в том числе 0,3 млрд. руб. штрафов и пеней, сообщается в пресс-релизе компании. Первоначальный размер претензий составлял 1,14 млрд. руб. (без пеней и штрафов), но с учетом возражений МТС сумма была снижена до 976 млн руб. Основная сумма претензий связана с неправильным, по мнению налоговых инспекторов, исчислением налогов по взаиморасчетам МТС с контент-провайдерами. Контент-провайдеры работают без лицензий на оказание услуг связи, поэтому налоговики не признают вознаграждение, которое выплачивает им МТС, расходами и считают, что оператор должен был заплатить с этого вознаграждения налог на прибыль, поясняет пресс-секретарь оператора Кирилл Алявдин.



Если не рассматривать налоговых аспектов данных претензий, то принципиальным является вопрос лицензирования контент-провайдеров. Как ранее сообщалось, разъяснение Мининформсвязи о том, что лицензию на телематические услуги должны получать не только операторы, но и взаимодействующие с их сетями фирмы, появилось только в 2005 году. Данный тезис является неоднозначным. В функции Мининформсвязи не входят вопросы лицензирования, и разъяснения в этой сфере Министерство давать не может. Сфера лицензирования отнесена п.5.4 Положения о Федеральной службе по надзору в сфере связи, утвержденного постановлением Правительства РФ от 30 июня 2004 г. N 318 к компетенции Россвязьнадзора, который в соответствии с п. 6.2 названного положения уполномочен давать разъяснения государственным органам, органам местного самоуправления, юридическим и физическим лицам по вопросам, отнесенным к сфере ведения службы. Таким образом, налоговые органы могут руководствоваться только позицией Россвязьнадзора в вопросе лицензирования контент-провайдинга.
Хозяйствующий субъект должен решать вопрос необходимости получения лицензии на тот или иной вид деятельности исходя из четких положений законодательства. В соответствии с 29 статьей Федерального закона от 7 июля 2003 г. N 126-ФЗ "О связи" деятельность юридических лиц и индивидуальных предпринимателей по возмездному оказанию услуг связи осуществляется только на основании лицензии на осуществление деятельности в области оказания услуг связи. Перечень наименований услуг связи, вносимых в лицензии, и соответствующие перечни лицензионных условий устанавливаются Правительством Российской Федерации и ежегодно уточняются.


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


1. Определение услуги связи приводится в статье 2 Федерального закона от 7 июля 2003 г. N 126-ФЗ "О связи". Под услугой связи понимается деятельность по приему, обработке, хранению, передаче, доставке сообщений электросвязи или почтовых отправлений. Рассматривая данное определение услуги, необходимо установить какие конкретно из перечисленных видов деятельности осуществляет контент-провайдер. Если услуга контент-провайдера осуществляется с использованием, принадлежащим ему технических средств то контент-провайдер осуществляет деятельность по приему запросов абонентов о получении контента, обработке запроса и передаче контента абоненту. Запрос абонента и конент являются сообщениями электросвязи. Доставку контента осуществляет оператор сети подвижной связи. Таким образом, можно констатировать, что деятельность контент-провайдеров соответствует данному критерию, если услуга оказывается на принадлежащих ему технических средствах. Если же техническое обеспечение оказания услуги возложено не на контент-провайдера, а на самого оператора подвижной связи или сервис-провайдера, то деятельность контент-провайдера по продаже контента не образует услугу связи.


2. Перечень наименований услуг связи, вносимых в лицензии, определен постановлением Правительства Российской Федерации от 18 февраля 2005 г. N 87 "Об утверждении перечня наименований услуг связи, вносимых в лицензии, и перечней лицензионных условий". В перечень лицензируемых услуг связи пунктом 16 включены телематические услуги связи. Раздел XVI перечня лицензионных условий определяет лицензионные условия осуществления деятельности в области оказания телематических услуг связи. Подпункт в) пункта 4 раздела предполагает обеспечение при оказании телематических услуг связи предоставления абоненту и (или) пользователю доступа к информации мировых и региональных информационно-телекоммуникационных сетей, в том числе к сети Интернет. Деятельность контент-провайдеров может быть квалифицирована как деятельность по предоставлению абоненту и (или) пользователю доступа к информации информационно-телекоммуникационной сети. Соответственно она может рассматриваться в качестве лицензируемой телематической услуги связи.


3. И последним принципиально важным критерием является критерий возмездности. В письме Минсвязи России N5279 "О позиции Минсвязи России по проблеме доступа в сеть Интернет из библиотек" регулятор рекомендовал библиотекам, оказывающим читателям услуги доступа в Интернет за плату, отказаться от взимания такой платы, чтобы избежать необходимости получения лицензии на оказание услуг связи. Таким образом, сам по себе факт оказания услуги не приводит к необходимости получения лицензии, если только за эту услугу не взимается плата.



Применительно к сервисам контент-провайдеров предполагающим только продажу контента, необходимо отметить, что ценность в этой услуге образует сам контент, а не деятельность по обеспечению его передачи в память сотового телефона т.е. услуга связи. Абонент платит за передачу ему конент-провайдером права однократной записи объекта интеллектуальной собственности (рингтона, логотипа, фото и т.п.) в память его телефона. Сама же услуга связи, при этом присутствует, однако такая услуга может быть принята контент-провайдером по стоимости равной нулю, т.е. оказываться бесплатно в целях обеспечения абоненту получения контента в память телефона. Сама по себе продажа контента не требует получения лицензии на деятельность в области связи; оборот прав на объекты авторского и смежных прав регулирует Закон РФ от 9 июля 1993 г. N 5351-I "Об авторском праве и смежных правах" и ряд других нормативно-правовых актов в области интеллектуальной собственности.


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



2006-10-11

Google Office

Можно сказать, что пакет сетевых программ Google Office готов.
Есть
* замечательная почта и менеджер контактов: http://gmail.com,
* календарь и органайзер: http://calendar.google.com,
* IM с функциями IP телефонии и голосовой почты: http://talk.google.com,
* записная книжка и todo list: http://www.google.com/notebook
* решение для бизнеса: https://www.google.com/a/
* для территориально распределенного бизнеса, конечно, карты:
http://earth.google.com/, http://maps.google.com/, http://sketchup.google.com/
и, наконец, недавно объявленный, Word + Excel в одном флаконе:
http://docs.google.com

Короткий, но познавательный тур по данному продукту
http://www.google.com/google-d-s/tour1.html

Главное достоинство всех продуктов доступность отовсюду, с чего угодно и возможность командной работы.

Также как человек, который работал с корпоративными web based системами, должен отметить, что продукты Google приятно быстрые.

Update:
* calendar.google.com позволяет отправлять SMS на телефоны СНГ-операторов
* Как разместить карту путешествия на своем сайте. Вариант использования для транспортных компаний и такси: где находится Ваш груз, Ваша машина, сколько машин в вашем районе.

2006-08-23

Ленивая оптимизация программ на Delphi/BCB

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

1) альтернативный менеджер памяти FastMM
http://fastmm.sf.net/
последняя версия 4.70
настолько хорош, что Borland заменила им стандартный менеджер в BDS2006.
В составе идет замена borlndmm.dll (Shared Memory Manager) позволяющая заметно ускорить работу самой IDE.

2) проект FastCode, FastMove.
http://www.fastcodeproject.org/
http://fastcode.sourceforge.net/
Я использовал только FastMove, но качать придется и FastCode, т.к. FastMove использует один небольшой модуль из него.
Замена стандартных функций Delphi (таких как move) на ускоренные аналоги (MMX, etc) с патчем в runtime.

Т.е. в обоих случаях в своих исходниках ничего менять не нужно, кроме как добавить
Uses FastMove, FastMM4 в начале dpr файла.

Вчера, наконец, дошли руки – написал тестовую программу, работающую с сокетами (отправляющую и принимающую бинарные пакеты). Ускорение работы с FastMove+FastMM4 практически двукратное, совершенно на ровном месте (я особо не выделяю память и не использую move)!

Будет интересно увидеть ваши результаты на таких же бытовых программах!