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

пятница, 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: В данном запросе не учитываются дайлапщики, но я думаю, на этой базе уже не так сложно будет допилить запрос под свои нужды.

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

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

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

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

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

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

PHP-падаваны

Года 2 или 3 назад я искал себе в помощники php-кодера, и готов был помогать в изучении пыха с прицелом на то, что человек будет со мной работать. Позвонил как-то мне один кекес и говорит: "А давай ты меня научишь пи-эйч-пи, а то я тут студию свою организовываю..." Уж не помню сейчас, на сколько букв я его послал :)
Сегодня стою на крыльце офиса, курю, никого не трогаю, подходит ко мне дирехтор одной местной уеб-студии и спич глаголит: "А ты можешь моего сына поучить пи-эйч-пи, майэскуэлю и жаваскрипту? А то я его в москву на работу устроить хочу..." И, видимо, увидев мое ошалелое лицо, добавил: "ну, за деньги, конечно!"
Млять! У меня что, лицо такое добродушное, что ко мне с такими вопросами обращаются? Вот спрашивается, какого бублика я должен тратить свое время на ублюдка, который сам ничему не хочет учиться, да еще при том, который никогда не станет мне помощником? (О том, что он из "конкурирующей ораганизации" я молчу, ибо они нашей студии вообще ни разу не конкуренты ;) )

З.Ы. Может маЯчку сделать себе: "Обучаю Пи-Эйч-Пи за еду и матрас" ?

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

Mind-log javascript and ajax. jQuery.

Сброс мыслей. Javascript, ajax.

Год назад, как раз примерно во время всеобщей ajax-шумихи, давнишний клиент озаботил меня очередным заказом. Вместо того чтоб писать нагромождение обработчиков (сложная страница, множество форм, коменты и прочее), я решил заюзать новомодную фишку - ajax.
Перепробовав множество реализаций, остановился на xAjax Привлекла вполне понятная структура, браузеронезависимость, относительная гибкость использования. Причуда xAjax`а в том, что для нормальной работы нужно описать и поименовать в соответствии с определенными правилами все функции (причем, и php- и javascript-), которые затем будут использованы в ajax-связке. Сейчас мне это кажется извращением. Но тогда я, покурив мануалы, примеры и гугл, понял и логику и стал использовать xAjax. Даже написал универсальный конструктор для cms Joomla, в котором описывал все используемые функции, а он сам строил жабаскрипт-часть для браузера и подготавливал всю эту связку к работе. Этот фарш до сих пор работает в упомянутом проекте.
Да, сейчас я считаю такой подход диким извращением. Рядом с ним даже садо-мазо-хентай - это дети в песочнице :)
А все почему? Потому что однажды я наткнулся в сети на (та-дааам!) jQuery. Что? Кто-то там кричит о Prototype и Yahoo UI ? Вы ошиблись номером. Абонент недоступен и вообще, закройте браузер; нам с вами не по пути :)
Что же хорошего предлагает jQuery? Это не только и не столько ajax-приблуда, сколько быстрый, гибкий, легко масштабируемый (система плагинов), простой в использовании и очень мощный фреймворк (хотя сами разработчики называют его скромно - "library" - библиотека). А ajax - всего лишь одна из многочисленных фишек, поддерживаемых нативно. Кроме того, в gzipped состоянии весит всего 16К. Замечательная особенность jQuery - многовариантность подходов к выборке объектов: можно использовать как непосредственно DOM-элементы, так и CSS-селекторы. Причем, в последнем варианте учитываются CSS 1,2 и немного от CSS3.
Что же касается ajax, могу сказать, что в jQuery самая лучшая реализация из виденных мной. Никаких "ответных частей" в php специально для аякса писать не надо. Можно использовать один и тот же код и для формирования обычных страниц, и для ajax-ответа. Кстати, присутствует нативная поддержка JSON (!), XML и прочих вкусностей.
Если кому-то стало интересно прочитать более авторитетный отзыв о jQuery, вам сюда. А мне пора за работу.
---
P.S. John Resig заплатил мне 10 килоевров за эту заметку. ;)

вторник, 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 года назад.

среда, 30 апреля 2008 г.

Microsoft отрицает существование новой уязвимости


В блоге Microsoft Security Response Center опубликовано заявление о том, что недавняя массовая атака
с использованием sql injection никак не связана с какой-то новой
уязвимостью в IIS, SQL server либо в других серверных продуктах MS.
[Не забывайте при копировании материала указывать полный адрес источника: http://bugtraq.ru/rsn/archive/2008/04/15.html]
Кроме
того, эти атаки никак не связаны с выпущенной практически одновременно
с сообщениями о первых заражениях рекомендацией по по блокировке
возможных последствий уязвимости, допускающей повышение привилегий
аутентифицированного пользователя до LocalSystem. Просто так совпало, а
полмиллиона зараженных страниц - привет прямым рукам их авторов.
Источник bugtraq.ru


Ну вот почему мне смешно? :)

вторник, 29 апреля 2008 г.

Чем веб разработка с нуля лучше готовой CMS?

Любопытный холиварчег:
Народ, я заказчик веб магазина (PHP, MySql и т.п.) и столкнулся с тем,
что некоторые команды отказываются работать с готовыми CMS (Content
Management System). Обьясняется это тем, что "есть своя и она лучше".
На поверку я часто не наблюдаю тот же уровень функциональности, что в
готовой (хорошей, платной) ЦМС. Хорошо, говорят мне, тогда мы вам
просто дорисуем, добавим что надо. И цена на разработку сразу взлетает
до 5-7000 долларов.

Обьясните на пальцах мне, юзеру, почему
команды разработчиков не всегда хотят использовать готовую платную CMS,
достаточно хорошо уже продуманную для интернет магазинов? Ваша админка
может быть хороша, но может быть по некоторым функциональностям проще
купить готовую панель и просто что-то дописать? Плюсы: экономия времени
и 80% готовой работы. Минусы, имхо: копаться в чужом исходном коде, не
всегда зная как лучше его оптимизировать. Я так понимаю? Обьясните мне
ваше отношение к готовым CMS в разработке? Спасибо.
ru_webdev: Чем веб разработка с нуля лучше готовой CMS?

Для книжного магазина начального уровня человеку советуют наперебой Битрикс и Typo3 - монстров, под которыми не то что шаред-хостинг, а даже VPS загнется при посещаемости ~1к. С этими зверюгами только нормальный колокейшн справится.

У народа каша в голове: "лучше для разработчика" !== "лучше для конкретного проекта" !== "лучше в принципе". Причем, что реально настораживает, каша даже в голове у самих разработчиков, причем, вроде бы, далеко не детского уровня.
- Цепляются за слова:
- как правильно: "модель, вью, контроллер", "модель-представление-контроллер" или "модель-представление-поведение"
- размешивают миксером мух в котлетах
"руби-на-рельсах и так можно назвать ЦМС...потому что...нераспраненный язык + стандарнтые для этого яыка библиотечки, и ничего больше"
Нельзя. CMF уж тогда
набор библиотек не более того. тот же друпал можно использовать так же
то есть, теперича у нас CMS, CMF, "набор библиотек", framework и язык программирования - есть одно и то же?! Однако ж, WЁB 2.0 наступает... Да-с...

- дают "дельные советы" по выбору основы:
Вам могу посоветовать самостоятельно выбрать
подходящую CMS и заказывать разработку именно на ней, то есть вам еще
нужно будет найти специалистов именно по этой CMS.
То есть, прежде чем купить автомобиль, человек должен изучить проектную документацию завода-изготовителя авто, пройтись по цехам и заручиться поддержкой "дядей-васей", что в случае чего, они ему подкрутят гайки, где надо; и потом еще договориться с главным инженером, чтоб под лобовым стеклом в его будущей машине поставили горшок с цветами. Бред.

- и, наконец, выдают экспертные заключения о качестве стороннего кода:
Потому что копаться в чужом говнокоде, изучать его зачастую кривую логику - это аццкий труд.
ну, разумеется: сам написал - карашё, зер гут! Все понятно, нигде говнокода не видно. Документация? Так нахрена, если я в своем коде, аки рыба в воде. Чужое? "Адназначна в биореактор!" (с) Сплошь и рядом говнокод! А документация где? Как это нету?! А как я разберусь в вашей лапше?? И логика ваша кривая, и переменные неправильно называете, а ООП - вообще вчерашний день; щас модно подпрограммами писать.

---
Вам какую пилюлю: синюю или все равно какую красную?


вторник, 22 апреля 2008 г.

Сказки IT-crowd

Попросила как-то Жаба (коммЭрческий директор фирмы-ISP) девочку- секретаря подготовить ей подборку сайтов определенной тематики. Девочка аськой передала адреса. Через день Жаба затребовала те же адреса еще раз. Девочка снова их аськой перекинула и говорит Жабе человеческим голосом русскими буквами:
(Д) - Вы добавьте к себе в букмарки все эти адреса, чтоб потом не искать.
(Ж) - Да, хорошо. (а сама поклацает по клавиатуре и пишет потом что-то на бумажке)
Девочка глянула той через плечо, а Жаба по старинному офисному обычаю смотрит на адрес в аське, вбивает его руками в в поисковую форму яндекса, потом переходит на искомый сайт и уже оттуда ручкой на листике адрес записывает.
(Д) - Вы же знаете как в букмарки добавлять?
(Ж) - Да-да! Конечно знаю! (и давай опять строчить на листике адреса в столбик)

---
Конец сказки. Морали не будет.

среда, 16 апреля 2008 г.

Еще перлы с #php

[A[x]] ребят .. подскажите как создать плавающую ошибку в пхп скриптах ? [relo_san]
[relo_san] а еще лучше - найди хоть какую книжку про ООП, почитай основы | [Lord_NightGhost] я их открываю, и мне сразу так грустно становится. и я их закрываю ( [relo_san]
[vssual] Есть ли сайт где лежит нормальный компилятор под php?

[+Rinat43763] народ... как скопировать данные с чужого сайта себе средствами php? пробовал copy - ни хрена не работает почему то (

[+Lord_NightGhost] мм... а какждый символ в утф равен двум мускульным что ли?

[@January] glebofff, Сегодня четверг. Это хуже чем суббота. Но лучше чем вторник. Более того, это гораздо лучше чем понедельник. Но немного хуже чем пятница. Греет то, что четверг все же лучше чем среда. Немного. Я вам больше скажу. Четверг даже лучше чем воскресение. Потому что в воскресение завтра понедельник, а в четверг завтра пятница.

Перлы #php

Канал #php
1.
[Небыч]: INSERT INTO `b` (`tc`) VALUE ('5') WHERE `tc` = 6
2.
January: СтаниславМалкин, я буду задавать тебе вопросы по FreeBSD, а ты будешь меня посылать нахуй
January: начинаем?

3.
relo_san: ску, я не курю вообще :) даже траву
relo_san: мне не надо курить, я был программистом, могу вызывать такой же эффект усилием воли :)

четверг, 10 апреля 2008 г.

Unknown post. He-he :)

Даже не знаю, как озаглавить. Короче, просто очередные цитатки.
Наш общий друг - Магистр Драмрок - все никак не успокоится. На этот раз он отличился замечательным советом по избавлению от байт-артефактов в коде:
"Разве что через правку исходников Апача. :-) Это ж надо первые два байта игнорировать.
Если это шаблон, то его можно из скриптов считывать и как строку укорачивать.
"
Если первую фразу еще можно принять за шутку, то во второй и намека на шутку нет. Он точно у индусов учился. Или у румынов. :)
---
И еще капля (из ру-вебдев и ру-пхп):
Крик о помощи: "php4 под windows в mozille не показывает рамки полей ввода!!!"
Избранные коменты:
"- это в ru_mysql надо было
- сразу в root_ru"
"- надо на руби или питон переходить, там такого не бывает, а уж на джаве вообще самая толстая обводка!
- С. Самые толстые рамки с 1972 года."
"- Рамочки сломали в последней версии PHP 5. Переходите на альфу шестёрки, там починено."

Hi-tech in the movie

Вот улыбают меня фильмы, где пытаются изобразить что-нибудь этакое - хайтековское, имея под рукой только лапти и самовар.
Только что в киношке "Дурман любви" (ну, случайно переключил, бывает ;) ) видел как героиня Мэг Райан, установив на крыше здания 2.4MHz wi-fi антенну "California" (см.картинку справа) и подрубив к ней старый усилок для аудиосистемы, "подслушивала" за парочкой в доме на другой стороне улицы. Причем, антенна была установлена в вертикальной поляризации. Это, наверное, для того, чтоб сузить "луч" и не захламлять сигнал охами-ахами из других квартир того же дома.

Весело :)

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

Еще про женскую логику

Женщины и, соответственно, их логика бывают разые.
Ежели кто забыл, работаю в компании-ISP и фин.директор у нас замечательная женсчина (которая de facto руководит всем), открывающая наш корпоративный сайт, вводя урл в строку запроса яндекса и потом переходящая по первому линку... Уровень ясен, да? ;) Для простоты назовем ее Жаба.
Так вот. Девочка-секретарь, которая даст фору Жабе во владении компом и сидящая прямо на линии визуального обстрела из ее кабинета, которой надоели необоснованные отчитывания, глупые поручения, задержки и так невысокой ЗП и прочее, собралась увольняться. Вчера уведомила об этом Жабу, на что та сказала "ну увольняйся" и тут же начала обзванивать рекрутинговые агентства в поисках кандидатуры на освобождающееся место. Причем, на еще меньшую зарплату, "но с возможностью быстрого карьерного роста и повышения ЗП". Хе-хе...
Сегодня же сотрудник из тех.отдела был вызван Жабой в кабинет и у него та спросила, где можно купить "виндофс", причем лицензионный. На закономерный вопрос "Зачем?" был получен ответ: "Ну как же! Вон сколько Маша мучается со старым! Надо обновить!" ("старый" - winXP, на старенькой сдыхающей машинке. Прим.переводчика)
Вот где логика? Хоть женская, хоть мужская, но должна быть. А тут где она?