Показаны сообщения с ярлыком web. Показать все сообщения
Показаны сообщения с ярлыком web. Показать все сообщения

пятница, 5 октября 2012 г.

Balancerobot: custom настройка НСС

Одним из последних могикан, которых перестал поддерживать BalanceRobot стал сайт НСС после того, как на нем разместили логотип Ростелекома.

Восстановить работоспособность довольно просто. Для этого нужно:
  1. В выпадающем списке операторов вместо НСС выбрать Custom
  2. В появившемся поле 'Список запросов в Интернет' вводим: https://iserve.ncc-volga.ru/?path=iserv userv=<%LOGIN%> passv=<%PASSWORD%>
  3. В поле 'Выражение для баланса на странице': post4">(\d+,\d+)\s
Сохраняем настройки. Должен отобразиться текущий баланс.

Для настройки другого оператора можно воспользоваться инструкцией:

1. Выбираем метод Custom
2. Вводим логин и пароль.
3. Вводим в "Список запросов в Интернет" страницу входа в личный кабинет
4. Нажимаем Меню->Запрос HTTP
5. Открывается страница входа
6. Вводим логин и пароль ещё раз на странице ввода. НЕ нажимаем "Войти" на странице
7. Нажимаем Меню->Установить
8. В настройках появится строка запроса с заполненными параметрами.
9. Правим в случае необходимости.
10. Нажимаем для "Проверить HTTP"
11. Если отобразилась нужная страница (картинки и вложенные страницы не отображаются в этом режиме), находим на ней число с Остатком(балансом).
12. Если не отобразилось можно попробовать добавить первой строкой в список запросов адрес страницы входа (будут передаваться Cookie). 
13. Если снова не отображается, то пробуем поместить в начале страницы адреса входа @ (для передачи всех POST параметров)
14. Если отображается страница личного кабинета, но на ней нет баланса, добавляем третьей строкой, страницу, на которой он есть.
Теперь остаётся только составить выражение для страницы. Ведутся работы....
Есть описание со скриншотами
Для проверки регулярных выражение имеет смысл пользоваться RegExp Online .

Можно воспользоваться моим прототипом (или HttpAnalyzer).
Написал свою программу, потому что HttpAnalyzer платный и глючный - надоел.

воскресенье, 5 февраля 2012 г.

Comtube - дорогие звонки

3 февраля Comtube без особых предупреждений стоимость звонков увеличилась на 34..580%.

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

P.S. Неприятная особенность Comtube - возможность уходить в минус. Если задолженность в Comtube превышает сумму которую Вы можете перечислить с электронного кошелька, то для следующего звонка придется заводить новый аккаунт.

Phonty. Стоимость звонка по некоторым направлениям ниже в два раза. Но качество связи у Phonty (Wi-Fi, Android) хуже чем у Comtube в режиме заказа соединения.

суббота, 14 января 2012 г.

Исправление css при добавлении к ссылкам favicon

После того, как в очередном сообщении favicon закрыли часть ссылок, поправил данную проблему, добавив background-size:16px; в следующую строчку шаблона:

thisUrl.setAttribute('style', 'padding-left:20px;text-indent:0px;background-position:left center;background-repeat:no-repeat;background-size:16px;background-image:url('+urlHref+');');

Описание скрипта и исходный код можно посмотреть в сообщении Добавление favicon для ссылок с использованием javacript.

среда, 11 января 2012 г.

Радость тишины

В мой прошлый приезд в монастырь три месяца назад я встретил на горной дороге моложавого мужчину с трехлетним карапузом на плечах.

- Ведь Вы Пико, да? – спросил меня мужчина, представившийся Ларри. Я вспомнил, что мы с ним встречались 19 лет назад, когда он жил при монастыре и помогал одному из монахов.

- Чем Вы сейчас занимаетесь? – спросил я.

- Я работаю на MTV. В Лос-Анджелесе.

Мы улыбнулись. И поняли друг друга без слов.

- Я стараюсь привозить сюда детей как можно чаще, — продолжал он, окинув взглядом расстилавшийся голубой океан с одной стороны и коричневые горы Центрального побережья – с другой. – Мой старший сын, — он показал на семилетнего ребенка, бегущего по залитой солнцем пустынной горной дороге впереди мамы. – Он здесь в третий раз.

Я вдруг понял, что ребенок завтрашнего дня, скорее всего, будет гораздо лучше нас видеть не новое, но самое важное в этой жизни.


Статья писателя и публициста Пико Айера в «The New York Times» посвящена тому, что коммуникации разрушают человека. Перевод можно прочитать на сайте «Православие и мир».

вторник, 10 января 2012 г.

Дешевые звонки

К сожалению стараниями Comtube данная информация устарела 2 февраля 2012 года, когда цены на звонки были повышены на 34..580%.

После того, как Евросеть тихо увеличила стоимость звонков стал искать другого провайдера VoIP.

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

Следующим был выбран comtube.ru. С сайта позвонить не удалось, но при этом он корректно сообщил об ошибке и предложил воспользоваться программой VoIP. Также было предложено ознакомиться с инструкцией, благодаря которой программа была успешно настроена. Порадовала стоимость звонков, которая на наиболее нужном направлении оказалась в 12 раз меньше чем у Евросети, а также очень хорошее качество связи.

Сервис для отправки SMS удивил очень низкими тарифами, а также тем, что можно прочитать ответные сообщения.

P. S. Очень удобной оказалась функция заказа звонка (с телефона на телефон), при этом для меня тарифы на соединение оказались в 20 раз ниже чем в Евросети.

вторник, 16 июня 2009 г.

Юбилей русской википедии

Плохие я делаю прогнозы. Число статей в русской википедии сегодня достигло 400000.

Кстати в старославянской википедии всего 357 статей, но среди них есть заготовка о Нижьн҄ии Новъ Граде.

среда, 6 мая 2009 г.

Добавление favicon для ссылок с использованием javacript

При описании стиля для дружественных ссылок возник вопрос по автоматическому добавлению соответствующего favicon. Совместными усилиями с r1mson и aam β-развитием этой темы стал javacript добавляющий к ссылкам favicon с сайта на который они ссылаются.

Скрипт размещается в шаблоне HTML перед закрывающим тегом </body>:
<script type='text/javascript'>
//<![CDATA[
  var allUrls = document.evaluate(
    '//div[contains(@class,"favicon")]//a[count(img)=0]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

  for (i = 0; i < allUrls.snapshotLength; i++) {
    var thisUrl = allUrls.snapshotItem(i);
    var urlHref = thisUrl.getAttribute('href');
    if (urlHref) {
      urlHref = urlHref.replace(/^(.*:\/\/[^\/]*).*/, '$1/favicon.ico');
      thisUrl.setAttribute('style', 'padding-left:20px;text-indent:0px;background-position:left center;background-repeat:no-repeat;background-size:16px;background-image:url('+urlHref+');');
    }
  }
//]]>
</script>

<!-- Добавить перед этим тегом -->
</body>

Скрипт будет действовать на ссылки, которые находятся внутри элементов со стилем favicon.
Для более точного указания области действия необходимо поставить флажок 'Расширить шаблоны виджета'. После этого найти нужные виджеты и добавить стиль favicon.
Для содержимого статьи:
<div class='post-body entry-content favicon'>
  <data:post.body/>
  <div style='clear: both;'/> <!-- clear for photos floats -->
</div>


Для общих новостей:
<b:widget id='HTML1' locked='false' title='Общие записи' type='HTML'>
<b:includable id='main'>
  <!-- only display title if it's non-empty -->
  <b:if cond='data:title != &quot;&quot;'>
    <h2 class='title'><data:title/></h2>
  </b:if>
  <div class='widget-content favicon'>
    <data:content/>
  </div>

  <b:include name='quickedit'/>
</b:includable>
</b:widget>


После этого проверяем. Если Ваши ссылки ведут на сайты с favicon, то выглядеть они будут примерно так:


Известные ошибки:
* если у сайта нет favicon.ico, то перед ссылкой будет 20 пикселей пустого места.

Особенности:
* для ссылок содержащих картинки, favicon добавляться не будет,
* кавычки, если есть, должны входить в состав ссылки.

вторник, 5 мая 2009 г.

Дружественные ссылки

Для выделения ссылок на другие блоги aam предложил использовать специальные классы. Описание класса для blogger.com представлено ниже. Для создания класса для livejournal.com и др. необходимо заменить ссылку на favicon.ico
<style type='text/css'><!--
a.blogspot{
font-weight:bold;
padding-left:20px;
text-indent:0px;
background-position:left center;
background-repeat:no-repeat;
background-image:url(http://www.blogger.com/favicon.ico);"
}
--></style>
Описание класса необходимо разместить в шаблоне блога. Для этого идём в панель инструментов / макет / Изменить HTML и добавляем описание класса сразу после:
<title><data:blog.pagetitle/></title>
Для использования стиля в ссылку необходимо добавить class="blogspot", например:
<a class="blogspot" href="http://aam-blog.ru/">aam</a>

LWP: ошибка при использовании NTLM

При использовании пакета LWP для запроса страницы требующей авторизации NTLM (LWP::Authen::Ntlm) возникла ошибка:
Client-Warning: Unsupported authentication scheme 'ntlm'
С ошибкой помог справится r1mson: для этого потребовалось установить модуль Authen::NTLM.
Данный модуль не устанавливается при установке LWP::Authen::Ntlm с помощью MCPAN, но упоминание о нём есть в документации к LWP::Authen::Ntlm:
The module takes advantage of the Authen::NTLM module by Mark Bush. Since there is also another Authen::NTLM module available from CPAN by Yee Man Chan with an entirely different interface, it is necessary to ensure that you have the correct NTLM module.
По умолчанию был установлен модуль от Марка Буша, собственно он и рекомендуется:
perl -MCPAN -e 'install Authen::NTLM'

воскресенье, 5 апреля 2009 г.

Настройка микрофона в Linux для использования в Skype

Под Linux не заработал сразу Skype — отсутствовал сигнал с моего микрофона. При этом в «Регуляторе громкости» микрофон был включён, а в dmesg ошибок для audio не было. Помогла программа «Звукозапись» («Sound Recorder»), то что отлаживаться лучше на ней подсказал rimson.

Алгоритм примерно следующий: сначала проверяется работает ли запись с источника «Захват». Если в этом режиме звук с микрофона записывается, то в «Регуляторе громкости» («Alsa mixer») нажимаем кнопку «Параметры» и делаем видимыми каналы работающие на запись. Тип канала указывается справа. Таких каналов может быть несколько («Захват», «Захват 1», «Захват 2», …) или один — как на рис 1.

После этого закрываем программу «Регулятор громкости» (есть небольшой глюк) и открываем её заново, затем во вкладке «Переключатели» выбираем захват с микрофона (рис 2).
Если во вкладке «Переключатели» отсутствует выбор источника для захвата, то смотрим вкладку «Записывается».

Далее проверяем, работает ли запись с источника «Микрофон». Если работает — проверяем Skype.

пятница, 23 января 2009 г.

escape() и Perl

Одноимённые функции escape() в Javascript и Perl символы в utf8 кодируют по разному. Первая представляет символы в формате %uXXXX, вторая - %XX.

Помог пакет URI::Escape::JavaScript, за что большое спасибо Koichi Taniguchi.

К приведённому в документации примеру достаточно добавить только "use encoding 'utf-8'":
use encoding 'utf-8';
use URI::Escape::JavaScript qw(escape unescape);

$string = "\x{3084}\x{306f}\x{308a}\x{539f}\x{56e0}\x{306f} Yapp(ry";
$escaped = escape($string);

$escaped = '%u30B5%u30D6%u30C6%u30AF%u5165%u308A%u305F%u3044%uFF01%uFF01';
$string = unescape($escaped);

четверг, 4 декабря 2008 г.

Как посмотреть кэш Firefox

Сегодня коллегой был задан вопрос: "как посмотреть кэш Firefox".
Ответ на него нашёлся быстро. Для просмотра кэша на диске в адресной строке браузера нужно ввести:
about:cache?device=disk

В ОЗУ:
about:cache?device=memory
Несколько удивило, что фоновое изображение размером 82кБ (jpeg), в памяти занимало 7,3МБ. Кроме него было ещё несколько растягиваемых изображений по 5-15КБ, занимавших в памяти 0,5-1,7МБ.

понедельник, 1 декабря 2008 г.

ExtJs: загрузка файла с сервера с обработкой ошибок

Задача: необходимо загружать файлы с сервера. Учитывая приличный размер файлов (несколько мегабайт) желательно реализовать загрузку файлов по ссылке, без пропускания содержимого файла через JSON. Возникла сложность как, открывая файл по ссылке, быть с обработкой ошибок. Помогло открытие ссылки в iframe:
function downloadFile(url){
var stub = Ext.get('cc-download-stub');
if (!stub)
stub = Ext.get(Ext.DomHelper.append(document.body, {tag: 'iframe', cls: 'x-hidden', width:'0',
height:'0', frameBorder:0, src: 'about:blank', id: 'cc-download-stub'}));

stub.dom.src = url ; // or url + '&_dc=' + (new Date().getTime()) to prevent caching
}
В случае ошибки при обращении к файлу скрипт на сервере формирует вызов Javascript-функции из родительского окна с соответствующим сообщением:
print $cgi->header(-type => 'text/html', -charset => 'UTF-8');
print '<script type="text/javascript">',
'parent.iframeError(\''.$msg.'\');',
'</script>';

суббота, 15 ноября 2008 г.

Unescape

Надоело каждый раз делать html-страницу, чтобы преобразовать escape-последовательность в текст.



escape:
unescape:


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

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

Малозаметные ошибки

Есть трудно обнаруживаемая ошибка, когда при проверке условия вместо "==" пишут "=":
вместо if (var == const) вставляют if (var = const). Что бы избежать подобных ошибок можно писать константу вначале.

Сегодня столкнулся с другой ошибкой - сразу после условия поставил точку с запятой, пришлось потратить несколько минут. Конструктивных вариантов борьбы с такой опечаткой в голову не пришло (не форматировать текст и отказаться от отступов - однозначно не подходит :), ставить {} для одного оператора тоже не особо приятно, придётся быть внимательнее.

вторник, 14 октября 2008 г.

Очистка профиля пользователя Firefox

Для экспорта сохранённых паролей использовал расширения Password Exporter и Sxipper.
Первое расширение экспортирует в xml файл. При экспорте возникли проблемы с паролями и логинами содержащими кирилицу, а также знаки больше и меньше. После поиска в google было найдено Sxipper. Расширение позволяет экспортировать пароли в csv файл, используя в качестве разделителя запятую.

После экспорта в xml и csv файлам были выставлены привилегии:
chmod 600 *password*

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

Следующим был установлен Foxmarks Bookmark Synchronizer. При первой синхронизации необходимо выбрать "Переписать локальные закладки".

После этих манипуляций объём .mozilla уменьшился до 10 МБ, а количество выделяемой виртуальной памяти после запуска - 149 МБ. После отключения sxipper - 131 МБ.
Затем восстанавливал сертификаты, найти удалось не все - только нужные ;).

Установлен Firebug - ещё 5 МБ виртуальной памяти.

Все необходимые расширения установлены, по мере добавления остальных не совсем объективная статистика будет пополняться.

Сейчас в результате этих манипуляций отсутствуют тормоза в переключении окон с участием firefox (раньше начиналось через 0,5..1 часа открытия страниц на "тяжёлых" сайтах), браузер не сваливается на gmail.com и на doroga.tv. Замечена маленькая не приятность - по умолчанию используется словарь без буквы Ё.

Ссылку на словарь с "ё" подсказал aam - даже не пришлось искать. Часто в словаре не хватает достаточно распространённого слова или известного названия, в этом случае, видимо, нужно обращаться по адресу http://forum.mozilla-russia.org/viewtopic.php?id=25691 или mozilla@mozilla-russia.org.

четверг, 9 октября 2008 г.

Уточнение карт

Aam подсказал как добавить объект на общую карту google. Добавил одно место - сказали спасибо и попросили подождать.
На той же странице справки была ссылка для сообщения об ошибке - написал о двух которые «мозолили» глаза.

Всем спасибо.

P.S. Через 35 минут это сообщение было замечено мною в результатах поиска google. Что за поисковик - монстр? :)

среда, 8 октября 2008 г.

Google Groups

Возникла проблема с фильтрами для одного объекта из библиотеки ExtJs. После нескольких часов изучения на практике методов, событий и свойств двух объектов зарегистрировался в Google Groups и описал свою проблему. Проверил после обеда: ответов не было, при этом появилось несколько новых постов с количеством ответов от 1 до 3. Пришлось отвечать самому. Для поиска ответа использовалась отладочная версия библиотеки. Выяснил, что для локальных данных метод ComboBox.doQuery() или очищает фильтр объекта Store для выборки всех данных, или очищает фильтр для установки нового для фильтрации по введённому значению - т.е. без особых вариантов на использование своего фильтра. Помогла проверка используемая для кэширования запросов по последнему условию.

Итоговая заплатка для использования своих фильтров выглядела так:
ComboBox.on('beforequery', function (obj){
obj.forceAll = true;
obj.combo.lastQuery = obj.query;
});
Внимание: используется недокументированное свойство ComboBox.lastQuery, работает в ExtJs версии 2.2.

P.S. Ранее для помощи в освоении ExtJs зарегистрировался в Вопросах и ответах, но после краткого знакомства с ВиО вопросы на эту тему там задавать я не стал.

среда, 1 октября 2008 г.

О печати

Немного о подготовке версии для печати.
Удивило, что автор пытается «забелить» фон - обычно при печати браузеры его игнорируют.