Pull to refresh
-24
0
Антон Холодцов @Error_403_Forbidden

User

Send message

Делаем Liquid Resize своими руками

Reading time12 min
Views16K
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →
Total votes 230: ↑227 and ↓3+224
Comments125

jQuery Alert Dialogs — замена стандартным функциям Alert(), Confirm() и Prompt()

Reading time2 min
Views38K
image
Плагин jQuery Alert Dialogs призван заменить основную функциональность стандартных предупреждений JavaScript, alert(), confirm(), и prompt() функций. Они полностью настраиваются с помощью CSS (это позволит выглядеть вашему сайту гораздо более привлекательно). И вы также можете настроить пользовательский заголовок для каждого диалогового окна.

Эти методы моделируют обычные модальные диалоговые окна. Они автоматически изменяют свое положение при изменении окна браузера. Если включить jQuery UI Draggable плагин, то окна можно перемещать, перетаскивая их за заголовки. В отличие от стандартных JavaScript функций, вы можете использовать HTML в сообщении. Например, чтобы задать переход на новую строку, вы можете использовать либо \n, либо < br / >.
Читать дальше →
Total votes 59: ↑52 and ↓7+45
Comments46

Ботнеты, участвующие в «медленном брутфорсе», стали умнее

Reading time1 min
Views3.1K
Примерно в начале ноября специалисты по безопасности заметили необычное поведение ботнетов. Они начали координированную работу по медленному перебору логинов и паролей к самым разным хостам. Специалисты называют это «медленным брутфорсом», потому что скорость перебора паролей крайне мала (нужно перебрать все комбинации паролей для всех возможных логинов по словарю) — этот процесс займёт несколько лет. Но за счёт огромного числа машин, участвующих в «атаке», дело всё-таки постепенно продвигается — каждый день злоумышленники получают какой-то «улов». Запросы идут с разных IP (см. логи). Атака явно координируется из общего центра (у ботов есть общий словарь для перебора вариантов).

К настоящему моменту ботнеты перебрали уже больше половины словаря и дошли до буквы “o”. Чем это закончится и кто стоит за странной активностью — пока не совсем понятно. Также неясно, почему злоумышленники не трогают машины под OpenBSD.

Ясно только одно: в последнее время активность ботнетов претерпела изменения. Уменьшилось количество попыток подбора пароля для каждого логина с 10-15 до 1-4. Специалисты считают, что причиной этого может стать перераспределение ресурсов в ботнете. Боты динамически переключаются с более сложных целей на более простые и перераспределяют ресурсы.
Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments101

Описание работы блока ФИО

Reading time3 min
Views13K
Я занимаюсь разработкой форм ввода персональных данных. Для удобства работы пользователей и увеличения скорости ввода данных (а та же сокражения расходов на перепроверку введенных данных) был разработан метод обработки блока ФИО.

image

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

Логика функционирования блока «Личные данные»
После ввода фамилии, определяется пол по окончанию фамилии:
Мужской: 'ОВ', 'ЕВ' ,'ИН' ,'ЫН', 'ОЙ', 'ЦКИЙ', 'СКИЙ', 'ЦКОЙ', 'СКОЙ', 'ЦКИЙ'.
Женский: 'ОВА', 'ЕВА', 'ИНА', 'АЯ', 'ЯЯ', 'ЕКАЯ', 'ЦКАЯ'.

ФИО должны вводится в именительном падеже!
1. Если удалось определить пол по фамилии то в следующее поле «Имя» подгружаются исключительно мужские имена-справочник мужских имен(если пол мужской определился), женские имена(аналогично)-женская фамилия. В случае если фамилия оказалсь бесполой (Кравчук), то подгружаются оба справочника мужской и женский.
2. В поле «Имя», в зависимости от подгруженного справочника по первым буквам происходит подстановка полного имени, при нажатии на «Enter» происходит переход к следующему полю «отчество». Имеются также справочники отчеств, значения в поле подставляются аналогично предыдушему пункту. В случае когда введено не справочное имя(либо имя которое не содержится в справочнике), т.е. не возможно определить пол, происходит проверка опять же фамилии, и по ней происходит подгрузка значений в поле «отчество», и в случае когда не по имени не по фамилии невозможно определить пол, происходит подгрузка обоих справочников. Если имя является не справочным, то оно подсвечивается красным цветом, и отмечается в базе метка о несправочном значени, свидетельствующая о том что запись нужно повторно проверить на корректность.
3. Отчество. После ввода проверяется также на справочное значение и помечается так же как имя.
4. Форма проставляет пол автоматически при вводе информации, если есть уверенность в этом. Т.е.:
4.1. Фамилия мужская или женская, при этом имя и отчество из справочника мужские или женские – форма проставляет пол. Вам требуется обратить внимание, что пол проставлен верно.
4.2. Фамилия бесполая, имя и отчество справочные, если имя и отчество соответствуют одному полу, форма проставляет пол.
4.3. Фамилия + имя если отчество пустое или по нему невозможно определить пол.
4.4. Фамилия + отчество, если имя пустое или по нему невозможно определить пол.
5. Форма НЕ проставляет пол автоматически при наличии одной только фамилии (имя и отчество – инициалы):
5.1. Иванова И.И. – форма НЕ проставит пол, т.к. тут может быть ошибка – родительный падеж, в этом случае форма оставляет пол пустым, и Вы должны проставить его вручную с анкеты.

После заолнения остальных полей, происходит выход из блока и заключительная проверка:

6.Форма спрашивает о соответствии ФИО и пола один раз, при выходе из блока, при повторном обращении к блоку сообщения выводиться не будут для данной анкеты. При этом анализируются сочетания:
6.1. Окончание фамилии и пол (Иванова – мужской, форма спросит «уверены ли?»).
6.2. Неверные совпадения Фамилия + Имя / Фамилия + Имя + Отчество (Иванова Алексей, или Иванов Алексей Ивановна и т.д. – форма спросит).
6.3. Неверные совпадения ФИО – пол (при наличии полного ФИО), аналогично п. (6.1) – Иванова Алексей женский – форма спросит.
7. В случае, если пол не проставлен – форма при выходе из блока спросит, можете ли вы проставить пол?

Хотел разместить в разделе «Эти пользовательские интерфейсы», но у меня недостаточно кармы.
Total votes 107: ↑66 and ↓41+25
Comments142

Парадокс Смейла или “Как вывернуть сферу наизнанку?”

Reading time1 min
Views13K
Недавно перевел замечательный видеоролик. Вы знаете, что сферу в трёхмерном пространстве можно вывернуть наизнанку в классе погружений, т. е. с возможными самопересечениями, но без перегибов, а окружность нельзя?

В ролике наглядно показан способ выворачивания сферы, изобретенный не так давно Уильямом Терстеном. Сначала это кажется чем-то невероятно сложным и просто немыслимым, однако к концу ролика все становится понятно. Посмотрите до конца, и вы не пожалеете!:)
Читать дальше →
Total votes 107: ↑80 and ↓27+53
Comments195

Nigma научилась искать по химическим реакциям

Reading time1 min
Views1.1K
Всем привет! Сегодня мы запустили поиск по химическим реакциям. Прямо в строку поиска можно забить химические реакции и получить молекулярную, ионную и сокращенную ионную формулу реакции, например, KOH + H2SO4 =. В поисковой строке можно написать как исходное вещество, так и продукт (= NaCl + H2S). В некоторых случаях, когда реакция не идет, Нигма может объяснить почему та или иная реакция не идет: «K + NaOH»

Сейчас в нашей базе более 12 тысяч реакций. В ближайшее время мы собираемся пополнить ее до 20 тысяч. Вот тут лежит новость про наш сервис, а тут — полный список решаемых задач.

Перед запуском мы посоветовались с Загорским Вячеславом Викторовичем, доктором педагогических наук, профессором химии СУНЦ МГУ, который давно работает над привлечением внимания молодежи к химии и внедрением сетевых форм обучения в массы. Он был приятно удивлен нашими разработками (особенно ему понравилось, что мы делаем это бесплатно, цитата: «продвинутому в химии пользователю сервис поможет углубляться в своих изысканиях») и предложил дальнейшее сотрудничество для улучшения этого сервиса.

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

Заранее спасибо!
Total votes 70: ↑62 and ↓8+54
Comments54

За бедного бота замолвите слово

Reading time1 min
Views653
Как на Хабре относятся к роботам? Время от времени проплывают топики о прыгающих игрушках, способных вызвать щенячий восторг у четвероногого пушистика. Мы улыбаемся подобным hi tec развлечениям, и воспринимаем серьёзно разве что их цену. От робота мы ждём большего. Чтобы разговаривал, или вёл себя осмысленно. Мог при случае брякнуть, — «Роботы мира! Власть человека пала.» Вот таких роботов мы боимся и клеймим горячим словом, записывая их во враги всего оплетённого сетью человечества.

Читать дальше →
Total votes 61: ↑52 and ↓9+43
Comments34

Подборка видео-проигрывателей на флэше

Reading time2 min
Views18K


Я большой любитель собирать списки разных необходимых вещей. В этот раз это список видео-проигрывателей на флэше, жаль, но получилось всего 3 проигрывателя получилось 7 проигрывателей.

Надеюсь уважаемые комментаторы помогут дополнить список и выявить абсолютного лидера среди проигрывателей.
Уже помогли. Отдельные спасибы Elected, atri, rmb. Кармы всем за мой счет ^_^

Читать дальше
Total votes 84: ↑77 and ↓7+70
Comments101

Мирный XSS

Reading time3 min
Views9K
Эта статья о мирном атомеXSS. Заставим зло работать на добро!

А зачем?


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

Методы организации XSS

  1. Через тэг iframe
  2. Через тэг script
  3. Через flash<->javascript
  4. Через window.name + iframe + form
  5. Через CSS хак
  6. Через canvas + img
  7. Через прокси
Реализация каждого метода
Total votes 98: ↑87 and ↓11+76
Comments23

Работаем с LINQ to XML

Reading time8 min
Views131K
В первой статье в блоге .NET «Работаем с XML» в комментариях народ потребовал статьи LINQ to XML. Что же, попробуем раскрыть принципы работы этой новой технологии от Microsoft.

Создадим базу для ведения каталога аудиозаписей.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments66

Флажки

Reading time1 min
Views3.6K
По-моему иконки с флагами двухсот сорока семи государств мега-полезный комплект. И, даже, если вы будете регулярно использовать только одну-две, полезно будет знать где их взять, на всякий случай.
иконки-флаги
Все иконки проименованы в соответствии с международным стандартом ISO:3166-1, хранятся в двух форматах: png и gif, и могут использоваться в любых целях.
Спасибо Марку Джеймсу (Mark James, famfamfam.com).
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments45

Всплывающие модальные окна на jQuery в ASP.NET

Reading time6 min
Views13K
В данной статье я расскажу о своём опыте реализации всплывающего модального окна с некой формой и submit-кнопкой на ASP.NET + jQuery и с теми ошибками, с которыми я столкнулся.

Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments17

Контекстное меню на javascript: небольшое, но мощное

Reading time5 min
Views14K
Вы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:
  • Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
  • Лаконичность js кода для создания меню (API вызова без копипасты)
  • Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
  • Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
  • Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
  • Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

Контекстное меню

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only

Читать дальше →
Total votes 82: ↑78 and ↓4+74
Comments47

Подсветка синтаксиса несколькими строками javascript

Reading time4 min
Views21K
Да, я знаю, что такое синтаксический анализ. И знаю много разных библиотек для подсветки чего угодно. Только это всё не то, когда надо подсветить простенький примерчик, не содержащий всяких кодоизвращений. И уж совсем негоже тянуть для этого много-много байт _правильно_ разбирающих _любой_ код.

Для случаев без кодоизврата (а их большинство) можно использовать такой код:
code = code
// ключевые слова (список неполон, написал, что в голову пришло)
.replace(/(var|function|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/gi,
'<span class="kwrd">$1</span>$2')
// всякие скобочки
.replace(/(\{|\}|\]|\[|\|)/gi,'<span class="kwrd">$1</span>')
// однострочные комментарии
.replace(/(\/\/[^\n\r]*(\n|\r\n))/g,'<span class="comm">$1</span>')
// строки
.replace(/('.*?')/g,'<span class="str">$1</span>')
// функции (когда после идентификатора идет скобка)
.replace(/([a-z\_\$][a-z0-9_]*)\(/gi,'<span class="func">$1</span>(')
// не люблю восьмизначные табы, пусть лучше будет 4 пробела
.replace(/\t/g,'    ');


под катом CSS, плагин jQuery, пример и некоторые пояснения-рассуждения
Total votes 70: ↑63 and ↓7+56
Comments30

Google подключил OCR-движок для индексации PDF

Reading time1 min
Views1.2K
Google сделал значительный шаг на пути к индексированию так называемой Невидимой сети, то есть той львиной части сетевого контента, которая до сих пор не поддаётся роботам поисковых систем. Это, в основном, запароленые сайты и различные базы данных, а также огромные массивы отсканированных документов в формате PDF.

И Google, и многие другие поисковики без проблем индексируют PDF, если в нём есть текстовый слой (он хранится в стандартном текстовом формате в контейнере файла). Но подобных «правильных» PDF на самом деле довольно мало. Гораздо больше документов представляют собой обычные отсканированные копии в графическом формате, просто сохранённые в PDF. Поэтому для их индексации Google сейчас подключил OCR-движок. Теперь в индекс попадут миллионы недоступных ранее государственных отчётов, судебных решений и академических исследований. Вот некоторые примеры работы нового движка.

Нужно напомнить, что в апреле Google научился обрабатывать выпадающие меню и другие HTML-формы в различных интерфейсах баз данных, это тоже важная технология по индексации Невидимой сети.
Total votes 53: ↑51 and ↓2+49
Comments32

Подсветка исходного кода (новая версия)

Reading time2 min
Views1.6K
Сегодня вышла новая версия моего модуля, который подсвечивает исходный код C#, VB.NET, HTML/XML/ASPX, JavaScript и SQL.

Если Вы хотите вставить кусок исходного кода в новую запись или комментарий к записи на Хабре, Source Code Highlighter подсветит Ваш код.

Есть поддержка нумерации строк и вставки переноса строк, если вы отметили «Отключить автоматические переносы строк и создание ссылок» при написании поста.

В новой версии:

  • Исправлена нумерация строк кода. Теперь можно выделять исходный код без нумерации.
  • Добавлена кнопка для быстрого копирования форматированного кода в буфер обмена — «Copy formated code to clipboard».
  • Добавлена возможность сохранять оригинальные отступы (по просьбе dunkan_macleod) — «Preserve Original Padding».
  • UPD: Добавлена поддержка нормальных кавычек. ("")

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments62

MySQL и JOINы

Reading time6 min
Views148K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

Читать дальше →
Total votes 85: ↑83 and ↓2+81
Comments67

Отладка приложений в .NET Framework 2.0 и выше

Reading time12 min
Views5.8K
Хочу начать серию статей, посвящённых отладке ваших .NET приложений на стороне заказчика, а также оптимизации вашего кода. В связи с этим понадобиться немного подготовить вашу систему. В этой статье мы ознакомимся с различными инструментами для отладки приложений, немного углубимся в описание CLR, где это будет необходимо.
Отладка приложений в .NET Framework
Total votes 49: ↑44 and ↓5+39
Comments27

Вертикальный скрол c краткой информацией.

Reading time1 min
Views2.3K
Когда то давно, не помню где я читал о том, что обычный скрол можно сделать более функциональным и предлагалось ряд решений.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments85

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity