программа для работы с регулярными выражениями

RegexBuddy — это отличная программа для работы с регулярными выражениями. C его помощью можна легко создавать, тестировать и работать с регулярными выражениями, которые будут точно соответствует вашим требованиям. Кроме того, вы можете создавать библиотеку часто используемых регулярных выражений, которая будет полезна в вашей дальнейшей разработке.
Скачать RegexBuddy (8.5Мб)

Недавно выкладывал объявление одной конторы, в котором номер телефона был зашифрован в уравнении - для привлечения внимания и защиты от дураков (чтобы совсем идиоты не звонили).

Однако наши программисты еще более суровы. Каптча на одном физ-мат сайте

Каптча уравнение интеграл

SELECT DISTINCT B.TYPE_SID, B.ID BANNER_ID, B.WEIGHT BANNER_WEIGHT,
B.SHOWS_FOR_VISITOR, B.FIX_CLICK, B.FIX_SHOW, B.KEYWORDS BANNER_KEYWORDS,
C.ID CONTRACT_ID, C.WEIGHT CONTRACT_WEIGHT, C.KEYWORDS CONTRACT_KEYWORDS
FROM b_adv_type T
INNER JOIN b_adv_banner B ON ( B.ACTIVE='Y' and B.TYPE_SID = T.SID
and B.STATUS_SID = 'PUBLISHED'
and (B.FOR_NEW_GUEST is null or B.FOR_NEW_GUEST='N')
and (ifnull(B.MAX_SHOW_COUNT,0)>ifnull(B.SHOW_COUNT,0)
or ifnull(B.MAX_SHOW_COUNT,0)=0) and (ifnull(B.MAX_CLICK_COUNT,0)>ifnull(B.CLICK_COUNT,0)
or ifnull(B.MAX_CLICK_COUNT,0)=0) and (ifnull(B.MAX_VISITOR_COUNT,0)>ifnull(B.VISITOR_COUNT,0)
or ifnull(B.MAX_VISITOR_COUNT,0)=0) and (B.DATE_SHOW_FROM<=now() or B.DATE_SHOW_
FROM is null or length(B.DATE_SHOW_FROM)<=0) and (B.DATE_SHOW_TO>=now()
or B.DATE_SHOW_TO is null or length(B.DATE_SHOW_TO)<=0))
INNER JOIN b_adv_banner_2_site BS ON ( BS.BANNER_ID = B.ID and BS.SITE_ID = 'ru')
INNER JOIN b_adv_contract C ON ( C.ID = B.CONTRACT_ID and C.ACTIVE='Y'
and (ifnull(C.MAX_SHOW_COUNT,0)>ifnull(C.SHOW_COUNT,0)
or ifnull(C.MAX_SHOW_COUNT,0)=0) and (ifnull(C.MAX_CLICK_COUNT,0)>ifnull(C.CLICK_COUNT,0)
or ifnull(C.MAX_CLICK_COUNT,0)=0)  and (ifnull(C.MAX_VISITOR_COUNT,0)>ifnull(C.VISITOR_COUNT,0)
or ifnull(C.MAX_VISITOR_COUNT,0)=0) and (C.DATE_SHOW_FROM<=now() or C.DATE_SHOW_
FROM is null or length(C.DATE_SHOW_FROM)<=0) and (C.DATE_SHOW_TO>=now()
or C.DATE_SHOW_TO is null or length(C.DATE_SHOW_TO)<=0))
INNER JOIN b_adv_contract_2_site CS ON ( CS.CONTRACT_ID = B.CONTRACT_ID and CS.SITE_ID = 'ru')
INNER JOIN b_adv_contract_2_type CT ON ( CT.CONTRACT_ID = C.ID
and (CT.TYPE_SID = 'ALL' or CT.TYPE_SID = T.SID))
INNER JOIN b_adv_banner_2_weekday BW ON ( BW.BANNER_ID = B.ID
and BW.C_WEEKDAY='SUNDAY' and BW.C_HOUR = '11')
INNER JOIN b_adv_contract_2_weekday CW ON ( CW.CONTRACT_ID = C.ID
and CW.C_WEEKDAY='SUNDAY' and CW.C_HOUR = '11')
LEFT JOIN b_adv_banner_2_group UG1 ON ( (UG1.BANNER_ID = B.ID and UG1.GROUP_ID in (2,1,21)) )
LEFT JOIN b_adv_banner_2_page BP1 ON ( BP1.BANNER_ID = B.ID and BP1.SHOW_ON_PAGE='Y')
LEFT JOIN b_adv_banner_2_page BP2 ON ( BP2.BANNER_ID = B.ID and BP2.SHOW_ON_PAGE='N'
and '/e-store/books/index.php?SECTION_ID=145' like concat(BP2.PAGE, '%'))
LEFT JOIN b_adv_contract_2_page CP1 ON ( CP1.CONTRACT_ID = C.ID and CP1.SHOW_ON_PAGE='Y')
LEFT JOIN b_adv_contract_2_page CP2 ON ( CP2.CONTRACT_ID = C.ID and CP2.SHOW_ON_PAGE='N'
and '/e-store/books/index.php?SECTION_ID=145' like concat(CP2.PAGE, '%'))
LEFT JOIN b_adv_banner_2_stat_adv BA ON BA.BANNER_ID = B.ID
LEFT JOIN b_adv_banner_2_country BC ON BC.BANNER_ID = B.ID WHERE T.ACTIVE = 'Y'
and BP2.ID is null and CP2.ID is null
and (BP1.ID is null or '/e-store/books/index.php?SECTION_ID=145' like concat(BP1.PAGE, '%'))
and (CP1.ID is null or '/e-store/books/index.php?SECTION_ID=145' like concat(CP1.PAGE, '%'))
and (BA.STAT_ADV_ID is null or BA.STAT_ADV_ID='0')
and (BC.COUNTRY_ID is null or BC.COUNTRY_ID='N0')
and ( (B.SHOW_USER_GROUP = 'Y' and UG1.GROUP_ID is not null)
or (B.SHOW_USER_GROUP <> 'Y' and UG1.GROUP_ID is null))
ORDER BY B.TYPE_SID desc, C.ID desc

У Битрикса одна из лучших админок, но внутри полный бардак. Как это работает на больших таблицах?
Например, не понятно зачем делать потенциально числовые поля строковыми: CP1.SHOW_ON_PAGE='Y'

Мы ищем компьютерных инженеров, которые любят решать сложные проблемы.
Позвоните нам по этому номеру сейчас.

объявление для инженеров

Билингвальные (или двуязычные книги) — это одна книга на двух языках, когда или на одной странице текст на одном языке — а на другой на другом (например, русский или английский) или когда разделение идет не по страницам, а по строкам. Чтение билингвальных книг ускоряет изучение английского языка. читать дальше

РХТУ главный корпус

Пара слов о РХТУ им Д.И.Менделеева, в котором я проучился 6 лет. Про РХТУ обычно пишут следующее: РХТУ — ведущий вуз в системе химико-технологического образования и подготовки кадров для химической промышленности и науки России. бла-бла-бла…
Попробую показать РХТУ изнутри, глазами студента. читать дальше

Спортивный тир в Тушино

После посещения тира «Хищник» решил сходить в центральный стрелково-спортивный клуб РОСТО, который находится совсем рядом с моим домом (м. Тушинская). подробнее о тире

парусный катамаран

На выходных поехали на Иваньковское водохранилище покататься на катамаране.
читать дальше

ЛепроАукцион

5 августа в клубе Сквот проводился аукцион. Люди выставляли на продажу всякие креативные вещи и услуги, а вырученные деньги пошли в детский дом г. Петровска. Всего было собрано почти 70 000 руб. До этого проводился online-аукцион на Лепре, на котором я купил поездку на дайвинг. В общей сложности было собрано 200 000 руб.
фотки

СВД снайперская винтовка

Давно собирался сходить в тир, пострелять из боевого оружия. Последний раз стрелял из калашникова на военных сборах в Курске. Нашел в интернете несколько тиров. Выбрал тир «Хищник», который находится недалеко от моего дома. подробнее о тире

  1. Любая работающая программа уже устарела.
  2. Любая программа обходится дороже и требует больше времени, чем казалось в начале.
  3. Если программа полезна, ее обязательно переделывают.
  4. Если программа бесполезна, ее тщательно документируют.
  5. Любая программа в конце концов занимает всю доступную память.
  6. Ценность программы обычно определяется весом выдаваемой ею распечатки.
  7. Cложность программы обычно растет до тех пор, пока не превысит способности программиста, призванного ее поддерживать.
  8. Если утилиты, испытанные при инсталяции, работают идеально, все остальные функции будут работать не верно.
  9. Если входной редактор спроектирован так, чтобы исключить неверный ввод, найдется изобретательный идиот, который изыщет метод ввести разрушительную команду.
  10. Невежество - единственный язык, которым владеют все программисты.
  11. Увеличение численности программистов, работающих над проектом, увеличивает сроки его выполнения.
  12. Небрежно спланированный проект требует в 3 раза больше времени, чем ожидалось, а тщательно спланированный - только в 2.
  13. В программе всегда есть еще одна ошибка.
  14. Невозможно создать программу с полной защитой от дураков, ибо дураки крайне изобретательны.
  15. Если все идет хорошо, вас вскоре ждут серьезные осложнения.
  16. Если дела идут хуже некуда, вскоре выяснится, что это не так.
  17. Если кажется, что все в порядке, вы просто что-то просмотрели.
  18. Тестовые операции и результаты их выполнения должны быть воспроизводимы - они все должны давать одинаковые отказы.
  19. Вы всегда найдете еще одну ошибку, если еще раз загляните в свою программу.
  20. Терминал работает лучше, если его включить в сеть.
  21. Если все не работает, читайте документацию.
  22. Если вам не понятно какое-то слово в технической документации, игнорируйте его, смысл от этого не пострадает.
  23. Не важно, много ли вы работаете, вы все равно работаете недостаточно.
  24. То, чего вы не делаете, всегда важнее того, что вы делаете.
  25. Всегда оставляйте место для объяснения того, почему ваша программа работает не так как планировалось.
  26. Не существует ничего невозможного для человека, который не собирается ничего делать сам.
  27. Если бы строители сооружали здания также, как программисты пишут свои программы, первый же дятел разрушил бы человеческую цивилизацию.
  28. Программисты действуют рационально, лишь тогда, когда другие способы исчерпаны.