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

понедельник, 23 марта 2009 г.

sms transmitted with success

Запустил и оттестил sms-сервис для своей мега-компании. Самым сложным оказалось победить Oracle; точнее, понять, что и где хранится в биллинге, чтоб составить запросы.
Теперь вот мне интересно, сколько времени пройдет, пока руководство растелится на 2-3 т.р., чтоб запустить этот сервис в коммерческую эксплуатацию :)

четверг, 19 марта 2009 г.

Tuz VS Tux

Linux ядро сменило логотип: пингивина сменил тасманский дьявол | Liberatum.ru
На минуточку будем не "пингвинятниками", а "дьяволятниками" :)


четверг, 19 февраля 2009 г.

rTorrent vs Deluge

Долгое время пользовался rTorrent`ом, но после какого-то  из апдейтов обнаружилась проблема с закачками, проявляющаяся в некорректной отработке рехеша. Пару слов, почему именно rTorrent. Ни один из иксовых клиентов не порадовал достаточной стабильностью работы (KDE 4.x) и, кроме того, не нравилось то, что нельзя обратиться по ssh с другой машины и добавить/удалить/изменить торренты. Ну и немаловажно то, что иксы не всегда есть как таковые. А rTorrent запускался в screen`e и был до поры до времени очень удобен и неприхотлив. Когда же закачки начали на ровном месте сваливаться в Closed или в зависший Open, было принято решение найти альтернативу; и она была найдена.
Deluge - начиная с версии 1.х представляет из себя не столько клиент, сколько демон, к которому можно прицепиться, используя иксовую, виндовую, консольную либо web-морду.
Каждый из интерфейсов требует помимо поднятого демона еще и запушенную с нужным ключом программу-прослойку. Например, для работы web-интерфейса нужно на сервере (на машине, где поднят демон) запустить deluge --ui web ; консольная утилита - deluge --ui console.
Web-интерфейс представлен тремя скинами, каждый из которых чего-нибудь да не умеет. Например, самый продвинутый аяксовый скин не умеет нормально редактировать текущий торрент, зато показывает все красиво; classic-скин неуклюж, но более корректно редактирует торренты.
Демон по умолчанию слушает порт 8112 и умеет SSL (конечно, если сгенерить сертификат), но можно указать и свой порт. Доступ через веб к демону - под паролем; так же можно запаролить вызов GTK`шного клиента из треи.
Из серьезных замеченных недостатков могу отметить кривую работу веб-морды при добавлении нового торрента. Зачем-то сразу после добавления идет попытка рехеша (в терминах Deluge - Force ReCheck), которая не приводит ни к чему хорошему: файл/папка еще не созданы, а рехеш уже пробует напуститься; итог - просто мертвовисящий торрент. Я решил эту проблему работой через консольную утилиту, имеющую подобие SH. Например добавление торрента: add путь_к_файлу_торрента [куда сохранять]. Справка по внутренним командам: [команда] --help. Все достаточно понятно и вменяемо, хоть и не так наглядно, как в rTorrent.
Сильные стороны: не нужен костыль screen`а, разные морды, SSL, приоритезация торрентов (как на прием, так и на раздачу), приоритезация файлов внутри одной закачки, индивидуальные настройки скорости и прочего для каждой закачки, мультитрекер (можно раздавать/качать один торрент сразу с нескольких трекеров), стабильный демон и GTK клиент.
Слабые стороны: недоработанный web-клиент, маломощный консольный клиент. Еще один большой минус - отсутствие встроенного планировщика. До версии 0.5.х был такой плагин, сейчас же придется пользовать cron.
Если что-то забыл, не обессудьте. Второй день пользую всего лишь.

понедельник, 9 февраля 2009 г.

Kaspersky site & SQL-injection

О, да. Это весьма занимательно: link
Тут тебе и скриншоты, и список таблиц мускуля. И утверждается, что есть данные об активации и информация о пользователях.
Если все это правда, то у нас очередной "сапожник без сапог".

четверг, 5 февраля 2009 г.

Google Hosted & Jabber VS ICQ

В связи с очередным приколом AOL`ов понадобилось настроить общалку для внутрикорпоративного использования.
Достаточно давно перевел всю почту фирмы на Google Hosted, то есть, домен наш, а физически обслуживается серваками Гугла. И сегодня решил проверить, смогу ли я пользоваться "hosted"-аккаунтом ( вида myname@ourdomain.tld ), как обычным GTalk-аккаунтом. Оказалось, что все работает на "ура".
Итак, понадобится Jabber или мультипротокольный IM клиент (для примера, в windows - самы распространенный на сегодняшний день клиент это QIP Infium, в линухе я пользую SIM).
Настраиваем SIM. Для тех, кто уже пользуется SIM`ом, сразу скажу, что настройка hosted-акка совершенно не отличается от настройки обычного акка вида myname@gmail.com. Остальным интересующимся читать ниже.
В менеджере соединений (Connections -> Connection manager) создаем новое соединение, указываем протокол Jabber
Username : пишем полностью с собакой и доменом, например, medved@kremlin.ru
Password : указываем пароль аккаунта
Server : talk.google.com
Port : 5224
Ставим галку "Use SSL"
Переходим на след. вкладку ("Network") и ставим галку "Use plain text login". А на вкладке "Options" ставим галку "Manualy specify Jabber host" и в активированном поле ниже пишем: "gmail.com"
Собственно, все. Осталось нажать "Next" и дождаться завершения процедуры.

среда, 14 января 2009 г.

XNeur & Fedora9

Как только поставил себе Fedora 9, захотел такую удобную фичу, как Xneur (функционал аналогичен PuntoSwitcher`у в win). Собрал, скомпилил, все нормально. А вот KXNeur (фронтенд для xneur, заменяющий индикатор раскладки и он же - визуальный конфигуратор xneur), столкнулся с граблями, что-де "checking for XNEUR... configure: error: Package requirements (xnconfig >= 0.9.1) were not met". Ну и ладно. Плюнул, забыл даже про эту фичу. И так работать можно.
А сегодня вот решил попробовать еще раз побороть тот глюк при ./configure для иксового фронтенда. Смех в том, что по сути иксовая приблуда нафиг не нужна: конфиг xneur весьма прост и не требует для нормального понимания иксовый гуи. Но это еще не все: я больше удивился, когда запущенный сам по себе XNeur стал нормально общаться с роднм xkb`шным индикатором текущей раскладки! (чего не было замечено в более ранних версиях, и даже с родным индикатором он работал весьма криво)
Итог: функционал имеем в полной мере, а за счет отказа от X-GUI экономим память и не жужжим :)
P.S. 08.01.09 выпущен XNeur и gXNeur версии 0.9.3 (я использую 0.9.1), а поддержка KXNeur прекращена ввиду отсутствия разработчика. А он нам теперь и не нужен ;)

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

JavaScript dFilter для MAC-адресов

Чуток доработал dFilter для работы с полями ввода MAC-адресов (маска теперь заточена под HEX). Кроме того, теперь фильтр работает корректно с цифровой клавиатурой. Может, кому-нибудь пригодится. Да и сам не забуду :)
Меняем всю функцию dFilter:
function dFilter (key, textbox, dFilterMask)
{
if (key > 95) key = key-48;
        dFilterNum = dFilterStrip(textbox.value, dFilterMask);
       
        if (key==9)
        {
            return true;
        }
        else if (key==8&&dFilterNum.length!=0)
        {
                  dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
        }
       else if ( ((key>47&&key<58)||(key>95&&key<106)||(key>64&&key<71)) && dFilterNum.length<dFilterMax(dFilterMask) )
        {
        dFilterNum=dFilterNum+String.fromCharCode(key);
        }

        var dFilterFinal='';
    for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++)
        {
        if (dFilterMask.charAt(dFilterStep)=='#')
                {
                      if (dFilterNum.length!=0)
                      {
                        dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
                          dFilterNum = dFilterNum.substring(1,dFilterNum.length);
                      }
                    else
                    {
                        dFilterFinal = dFilterFinal + "";
                    }
                }
                 else if (dFilterMask.charAt(dFilterStep)!='#')
                {
                    dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep);            
                }
        }


        textbox.value = dFilterFinal;
    return false;
}

P.S. Цеплять jQuery + плагин масок не захотел.

вторник, 9 декабря 2008 г.

SIM & GTalk

Думаю, многие знают, что SIM поддерживает Jabber-like сервера от Google (Google Talk, GTalk).
Вчера или позавчера мой сим сказал мне, что он больше не может работать с гугль-толк. Перепробовал кучу комбинаций в симовском нетворк-сетапе. Не помогло.
Для всех страдальцев, столкнувшихся с этой бякой сообщаю: нужно поставить TLS-либу.
Debianqca-tls
Fedora
qca-tls
Gentooapp-crypt/qca-tls
Mandrivalibqca1-tls
SUSEqca
Ubuntuqca-tls

пятница, 5 декабря 2008 г.

Загубленый проект красиво послали на

Проект, к которому мы некоторым образом были причастны (а точнее, написали много кода), недавно был {пере}продан. И все бы ничего, да новые владельцы решили сделать из проекта дойную корову, просто понапихав огромное количество рекламы на все страницы сайта. Кроме того, "из благих намерений", как это обычно бывает, они решили "обновить все движки, используемые на сайте". только они не учли, что код этих самых движков был переписан примерно на 30% и более, была проведена множественная интеграция сервисов и API, чтобы все работало, как единый механизм. Так в погоне за новыми версиями, они просто поломали все, что можно было моломать; и что нельзя - тоже. Насколько я понимаю, на сайте живут сейчас только новички и те, кто все еще тщетно надеется на воскрешение проекта после "обновления". А те, кто вложил много души в фотографии, размещенные на этом проекте, и теперь их (фотографии) банально потерявшие, видимо, не смирились и дружно послали в известном направлении и проект, и его новую администрацию, заодно дав понять наиболее лояльным пользователям, что ловить здесь нечего. Короче, ломанули проект. Причем, красиво; без всяких жабаскриптов. Все гениальное просто:
<META HTTP-EQUIV=Refresh CONTENT="10; URL=http://lleo.aha.ru/na/">
Замечу: до момента продажи сломать его пытались многие, но это у них не получалось; или получалось тлько отчасти и быстро все приводили в норму без последствий для пользователей и проекта в целом. Что ж, туда им и дорога. Хотя, на самом деле, очень жалко, что такой проект загнулся. Было интересно; в процессе работы над ним многому научились. Да и после сдачи даже сами пользовались. Эх...
P.S. Ссылок не даю. Смотреть там уже не на что.

среда, 3 декабря 2008 г.

Goodle news for every one :)

Гугл-календарь наконец-то можно сопрягать с локальными календарями (sunbird, к примеру) по протоколу CalDAV. Мне этого не хватало.
Подробнее - от самого гугла.

пятница, 24 октября 2008 г.

Oracle

По работе столкнулся с ораклом. Прикольная система.
Маленький tip, чтоб сам не забыл. Дефолтные логины-пароли Oracle:
INTERNAL : oracle
SYS : change_on_install
SYSTEM : manager
Внемлем призыву "change_on_install"!
---
Устав бороться с iSQL*PLUS поставил Navicat. Tip: чтобы не открывать порт для взаимодействия внешних утиилит с ораклом, лучше их пускать через ssh-туннель (в настройках соединения).

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

вторник, 30 сентября 2008 г.

День интернета

Товарищ, верь, взойдёт она,
Звезда веб-мастерского счастья,—
В спецификацях стандартов
Напишут наши имена!

Всем веб-разработчикам посвящается. Тема сисек и цветочков раскрыта полностью.
в трех сериях
via Anch

вторник, 2 сентября 2008 г.

Google mail & maps for mobile

Вчера обнаружил, что мобильные приложения от гугла дополнились и обновились.
Обновления:
[QR code for list: ]


  • Пополнение: GMail mobile for domains
[QR code: ]




Причем, приложение GMail mobile for domains гораздо более доработанное и более приятное, нежели "родной" GMail.
У "Карт" (G Maps) субъективно обновилась только иконка. Никаких видимых улучшений по сравнению с предыдущей версией не замечено. Все так же не умеет искать ни по каким критериям, кроме названия населенного пункта. Все так же никакого тебе наложения сторонних/дополнительных лееров. Все так же не умеет tracking. Ну и ладно. Зато работает быстро и безглючно; не то что яндекс-мапс, который в Ростове-на-Дону грузил 5 килобайт 20(!) минут и своей глючной работой посадил мне полностью заряженный аккумулятор за ~4 часа. Не снес я творение тындекса только потому, что там хранится один трек. Как перелью его куда-нибудь, - убью свино-яндекс-мапс без сожалений.

пятница, 1 августа 2008 г.

UTM5 billing all-users-data mysql query

Пришлось мне по работе иметь дело с "замечательным" биллингом UTM5.

Задача: вытащить все данные клиентов, включая id и имя основного лицевого счета (мастер-аккаунт) и всех связанных с ним с подчиненных аккаунтов. Учитывая гениальную "...улучшенную и оптимизированную структуру БД..", в которой, к слову сказать, во всех таблицах 1 индекс (и то не уникальный) по полю id, задача нетривиальная. Поиск по форуму зазрабов ничего не дал. Несколько дней мучений, советов на #mysql, несколько литров кофе, тонна табака и куча матершины дали результат :) Всем UTM-мученикам посвящается:

SELECT DISTINCT
u.id main_id, u.login main_login,
sl.account_id acc_id,
ip.uname uname, ip.upass upass,
atl.tariff_id tarif,
sl.service_id service_id,
u.full_name,
inet_ntoa(ip.ip&0xffffffff) ip,
ip.mask,
u.juridical_address jur_address, u.actual_address actual_address,
u.work_telephone work_telephone, u.home_telephone home_telephone,
u.mobile_telephone mobile_telephone,
u.tax_number tax_number, u.kpp_number kpp_number
FROM ip_groups AS ip
LEFT JOIN iptraffic_service_links AS isl ON isl.ip_group_id = ip.ip_group_id
LEFT JOIN service_links AS sl ON isl.id = sl.id
LEFT JOIN users AS u ON sl.user_id = u.id
INNER JOIN account_tariff_link AS atl ON sl.account_id = atl.account_id
WHERE
sl.is_deleted = 0
and isl.is_deleted = 0
and ip.is_deleted = 0
and u.is_deleted = 0
AND atl.is_deleted=0
AND ip.is_deleted=0
ORDER BY u.login

Забирайте. Пользуйтесь. Кто там кричит "неоптимизированный запрос" и "зачем столько проверок" ?! Не нравится - не пользуйся! Можешь лучше - покажи! Запрос рабочий. Тянет всю читабельную инфу из users, обращенный IP и маску, id тарифа, id сервиса.

Минусы: весьма тяжелый запрос. На нашем серваке он так и не отработал; тупо повис. Пришлось по одной таблице перетянуть на локальную машину, - это раз. Два - для сбережения своих же нервов советую сразу в поднятом локально дампе проставить индексы. Даже на локальной машине этот запрос вешался, пока я не добавил индексы. Хотя бы такие: в users добавляем по полю login; в ip_groups - ip и ip_group_id; в ip_group_id - ip_group_id, account_id, tariff_link_id; в account_tariff_link - account_id и tariff_id. Хотя, даже половина этих индексов уже заметно ускорит выполнение тяжелых запросов вроде этого.

NOTICE: В данном запросе не учитываются дайлапщики, но я думаю, на этой базе уже не так сложно будет допилить запрос под свои нужды.

четверг, 24 июля 2008 г.

Пользуем JQuery для сокрытия e-mail адреса (antispam)

Я уже писал, про замечательный JavaScript framework JQuery. Сегодня хочу поделиться небольшим трюком для сокрытия e-mail на страницах сайтов.
Допустим, у нас есть ссылка вида "mailto:name@sure.tld" Если оставить ее в таком виде, велика вероятность, что в очень скором времени этот адрес попадет в спам-листы. Ну это всем понятно; поехали дальше.
Обманываем ботов.
В <head> добавляем строку подключения JQuery, если ее там еще нет:
<script type="text/javascript" src="/js/jquery.js"></script>

Для своей задачи я использую отдельный подключаемый js-файл, в котором держу весь жабаскрипт, но вы, разумеется, можете использовать следующий код и в теле html`а:
jQuery(function($) {
$("#spfm").attr(href: "mailto:vasya@pupkin.ru");
} // да-да, режим совместимости с другими библиотеками ;-)
В данном примере "spfm" - id ссылки. То есть, защищаемая мыльно-ссылка должна иметь некий признак, по которой ее можно идентифицировать и заменить ее атрибут. Я использовал id, как наиболее простой способ. Можно так же использовать, например, класс. Ну и, разумеется, в html меняем ссылку на левую; например, nospam@tundex.ru
Казалось бы, все хорошо, в теле html светится левый адрес и по готовности DOM линк заменяется на нужный нам. Но, как истинный параноик, я подумал, что особо умные роботы могут скушать и подключаемый js и распарсить его. Про использование данного метода без отдельного js-файла вообще молчу - весь трюк теряет свой смысл... Для обоих случаев, хоть с внутренним js-кодом, хоть с подключаемым файлом, усовершенствуем немного наш антиспам. Разобъем реальное мыло на составляющие, а перед заменой, будем собирать его обратно:
jQuery(function($) {
var zupamail = ["ilto:vasya@", "ma", "pup", "kin.ru"];
$("#spfm").attr({href: zupamail[1]+zupamail[0]+zupamail[2]+zupamail[3]});
} // да-да, режим совместимости с другими библиотеками ;-)

Насколько мне известно, боты пока не умеют жабаскриптить :) и наш мыл останется для них недосягаем.

понедельник, 14 июля 2008 г.

Стартапы и рутина

Хорошее определение стартапа (взято здесь):

[аноним] С аутсорсингом все понятно - "одна рутина - дописать, пофиксить, потестить, стереть пыль, перекрасить, забить пару гвоздей...". Нужели со стартап проектами иначе?

[cr-azz] Стартап - это когда строятся стены параллельно с фундаментом :), а гвозди забиваем потом, сначала надо функционал. Пылью ничего не припадает, перекрашивается всё по пять раз по свежей краске :), меняя цвета 3 раза в день.

среда, 9 июля 2008 г.

Интернет пропатчили

Вчера заметил странное поведение DNS в нашей сети. Некоторые, если не многие, домены отзывались не сразу, а только на второй-третий раз. Причем, глючили даже гугл-сервисы, например, Пикаса. Пришел к выводу, что виновата старая машинка, которая юзается в качестве DNS, и /почему-то/ выросший трафик запросов, с которым она просто не справляется.
Решать эту проблему на корпоративном уровне - дело почти безнадежное: денег не дадут. Хе-хе. Для себя решил проблему прописыванием вторичного DNS на своей машине.
Сегодня просто ради интереса отрубил вторичку и проверил около 50 урлов (тупо взял из серч-резалта гугла); результат - все в норме, за исключеним одного домена, который просто-напросто экспайрился.
К чему это я.. Ах, да! Сегодня узнал о том, что как раз сутки назад (08.07) началось "пропатчивание" тырнета. А точнее, одной из фундаментальных составляющих современного интернета - системы доменных имен (DNS).
Если еще точнее, то модернизации подверглась реализация обмена данными между вышестоящим и нижестоящим DNS-серверами, которые для идентификации входящих данных используют числовые метрики, вычисляемые по псевдо-случайному алгоритму. Кроме того, количество этих метрик конечно и составляет всего 65000. Псевдо-случайность и относительно небольшое количество этих метрик теоретически могут обеспечивать уязвимость, известную как "DNS cache poisoning" ("отравление DNS-кеша"), при котором целевому серверу можно подсунуть пакет, прожевав который, он будет все запросы к Гуглу перенаправлять на vasya.laodzy.cn, например. Ну, после того, как все (все) DNS-сервера обновят свои BIND`ы и прочие иисы, Василий Лаодзы уже не сможет ничего сделать. :)
От так.

вторник, 20 мая 2008 г.

Service Pack 3 для Windows XP вызывает ошибку

Установка пакета обновлений Service Pack 3 для Windows XP вызывает ошибку, приводящую к постоянной перезагрузке компьютера. Проблема касается только машин с процессором AMD.

Вскоре после начала распространения SP3 для Windows XP в службу технической поддержки Microsoft начали поступать жалобы от пользователей на некорректную работу компьютера после установки пакета обновлений. Во время перезагрузки, завершающей процесс установки SP3, компьютер проходил стадию проверки BIOS, обращался к загрузочному сектору и перезагружался вновь. Повторная перезагрузка, а также выключение компьютера, не исправили ситуацию.

Бывший менеджер по безопасности Microsoft Джеспер Йоханссон (Jesper Johansson) назвал в своем блоге две возможные причины данной проблемы.

Он предположил, что компания HP при первоначальной инсталляции операционной системы использовала один образ как для компьютеров на базе Intel, так и на базе AMD. Поэтому за управление питанием ПК на обеих платформах отвечает один файл intelppm.sys. Однако изначально он создан только для компьютеров с процессором Intel. За управление питанием машин с AMD отвечает amdk8.sys. В результате система определяет intelppm.sys в связке с процессором AMD как нештатную ситуацию и работает некорректно.

Вторая проблема связана с BIOS процессоров AMD. Как правило, она возникает при использовании материнской платы Asus A8N32-SLI Deluxe.

Для восстановления работоспособности компьютера в первом случае Йоханссон рекомендует просто отключить intelppm.sys. Во втором - подключить к компьютеру флэшку, и лишь после этого включать его.

И после этого вы будете говорить мне, что-де "для работы в линуксе надо знать танцы с бубнами"? Хе-хе :) А как вам такие танцы с флешками? Вот оригинальный текст, если кто-то сомневается:

The solution is simplicity itself: insert a USB flash drive, or some other form of secondary storage mechanism, before booting the computer. The people have that have seen this problem report that it goes away when they do. The catch is that the computer will only boot with a secondary drive attached. If you remove the secondary drive it will no longer boot. (Direct link)

Товарищ Джеспер выпустил утилиту диагностики и устранения проблемы (скачать). Перед установкой убедитесь, что в вашем компьютере установлен процессор AMD. Для этого вставьте в соответствующий привод дискету 3.5", отформатируйте ее, запишите на нее пустой текстовый файл и выкиньте в окно. Если дискета зависла в воздухе, значит у вас точно процессор AMD; если же окно оказалось закрыто, у вас стопроцентно UltraSPARC. Теперь просто запустите утилиту двойным щелчком мыши или Enter`ом. Если вам нужно проверить сразу несколько компьютеров, это можно сделать так: "removeIntelPPMonAMD.vbs [comp 1] [comp 2] [comp 3] ..."

HP выпустили официальный хелп по проблеме.

Официальные комментарии Microsoft, относительно обнаруженных проблем, отсутствуют.

По материалам securitylab.ru и блога бывшего менеджера по безопасности Microsoft Jesper Johansson

понедельник, 19 мая 2008 г.

PayPal XSS Vulnerability Undermines EV SSL Security

В платежной системе PayPal обнаружена очередная уязвимость:


A security researcher in Finland has discovered a cross-site scripting vulnerability on paypal.com that would allow hackers to carry out highly plausible attacks, adding their own content to the site and stealing credentials from users.

The vulnerability is made worse by the fact that the affected page uses an Extended Validation SSL certificate, which causes the browser's address bar to turn green, assuring visitors that the site – and its content – belongs to PayPal. Two years ago, a similar vulnerability was discovered on a different page of the PayPal site, which also used an SSL certificate.


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