Search
Write a publication
Pull to refresh
0
0
auth @auth

User

Send message

Application Verifier для программиста: тестирование Windows-приложений

Reading time7 min
Views21K
Возможно в Вашем проекте и не пишут try { /* code */ } catch(...) { } для того чтобы избежать исключений при работе с памятью, умеют закрывать хендлы и знают о виртуализации Windows Vista, а программы никогда не падают по непонятным и редко повторяемым причинам.

Тогда Вам повезло, можете переходить к следующему топику.
Но если это не так...

Интересный способ защиты от ботов

Reading time1 min
Views14K
Наткнулся тут недавно на одном сайте на способ защиты от ботов без использования каптчи и javascript.
Все очень просто — достаточно добавить скрытое поле с символом кодированным в HTML сущность (например © — и т. д.). Дело в том что браузер найдя такой символ преобразует его перед отправкой в обычный, а робот использующий парсер форм так и отправить закодированным (причем у меня есть свой парсер форм и он сделал бы именно так). При проверки формы достаточно просто посмотреть длину строки в этом поле. Если отправлял человек то она будет равна числу символов в строке, а если нет значительно больше.
Так что такое решение пусть и не обеспечивает серьезной защиты но вполне может применяться в тех случаях если что то более сложное использовать нельзя.

P. S. пример
P. P. S. Оказывается у меня тут в черновиках статья лежит про методы защиты от ботов и их обходы, стоит дописать?

Что ждет Индивидуальных предпринимателей без сотрудников в 2010 году?

Reading time2 min
Views738
Привет!

С начала этого года в России вступил в силу страшный закон, отменяющий ЕСН, и сразу же по интернету начали гулять мифы о том, какие нововведения ждут предпринимателей – на форумах пишут о дополнительном налоге в 14%, новой отчетности и прочих дьявольских хитростях. При этом опытные бухгалтеры многозначительно покряхтывают, говорят «Боже мой, как же все поменялось» и задумчиво качают головой.

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

В основном все осталось как и прежде. Поменялись всего 3 вещи:
Читать дальше →

Создаем объёмный блок с тенью средствами CSS3

Reading time3 min
Views14K
День, когда стандарт CSS3 будет официально утвержден, а все популярные браузеры начнут его отображать приблизит нас, верстальщиков, к нашему же «раю верстальщиков» в несколько раз. Пока же заглянем в будущее и узнаем, как можно создать псевдо-3D блок используя только css и html.
показывай, кудесник

Эффективная сегментация изображений на графах

Reading time10 min
Views41K

Сегментация изображений и выделение границ объектов (edge detection) играют важную роль в системах Computer Vision и применяются для задач распознавания сцен и выделения (определения) объектов. По большому счету, это такой же инструмент, как, например, сортировка, предназначенный для решения более высокоуровневых задач. И поэтому понимание устройства данного класса алгоритмов не будет лишним при построении подобных систем с учетом предъявляемых требований (в плане качество/производительность) и специфики поставленных задач.

В данной статье кратко описан алгоритм «Efficient Graph-Based Image Segmentation» авторов Pedro F. Felzenszwalb (MIT) и Daniel P. Huttenlocher (Cornell University), опубликованный в 2004 году. Да, алгоритм относительно старенький, но, несмотря на это, он до сих пор остается весьма популярным, демонстрируя неплохие результаты в плане производительности.

Под катом – большая смесь картинок и текста, не требовательная к текущему уровню знаний тематики. Любопытство приветствуется.

Мсье хочет знать толк в сегментации

Колоночная верстка

Reading time5 min
Views16K
Существует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:

Плюсы
  • Есть прижимающийся к полу футер
  • Колонки меню растягиваются по 100% высоте
  • Колонок может быть сколько душе угодно
  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
  • Ширина как резиновая, так и фиксированная
  • Критический минимум хаков
  • Не используется Javascript
  • Не используются бекграундовые изображения для создания эффекта колонки
  • Никаких таблиц
  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

Минусы
  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
  • Есть несколько абсолютно-позиционируемых блоков
Читать дальше →

Алгоритм коллаборативной фильтрации

Reading time2 min
Views16K
Коллаборативная фильтрация (англ. collaborative filtering) — это метод, который даёт автоматические прогнозы исходя из наколенной информации о интересах и вкусах пользователей.

Чаще всего можно рекомендовать музыку или книги уже имея какие-то данные о пользователе. Например, Amazon или Ozon запоминают, что я ищу или куда ходил и из этих данных строит мне рекомендацию. Но лучше, чтобы пользователь сам вводил их в свой профиль, можно даже ему рассказать, что у вас эта система стоит и чтобы он сам мог выбирать что ему дать в следующий раз.
Читать дальше →

Обзор библиотеки для интерактивной визуализации данных WPF DynamicDataDisplay

Reading time6 min
Views17K
image
Здравствуйте, уважаемые хабрапользователи!

В этом посте я расскажу вам о нашей разработке — бесплатной Open-source библиотеке для интерактивной визуализации данных WPF DynamicDataDisplay.
Немного о нас: мы — это сотрудники лаборатории технологий Microsoft факультета Вычислительной математики и кибернетики Московского государственного университета. Недавно на Хабре была статья о том, каким наш факультет видится студенту первого курса, а теперь этот пост позволит вам немного больше узнать о том, чем занимаются студенты нашего факультета на более старших курсах. Пример того, над чем работают пятикурсники — это наша библиотека для интерактивной визуализации научных данных DynamicDataDisplay (сокращенно — D3).
Читать дальше →

Программирование интерфейсов промышленной автоматики

Reading time3 min
Views13K
HMI (Human-Machine-Interface) — широкое понятие, охватывающее инженерные решения, обеспечивающие взаимодействие оператора с управляемыми им машинами. За термином Человеко-Машинные интерфейсы подразумевается весь спектр панелей управления от магнитол до пилотских кабин. HMI панели выпускают практически все гиганты электронной промышленности (Siemens, Motorolla, Mitsubishi). Я вам покажу как выглядит процесс разработки для панели GP2301 фирмы Pro-Face.
Читать дальше →

Рисуем координаты на карте с помощью PHP + GDLib

Reading time2 min
Views8.7K
Так сложилось что по долгу своей службы я занимаюсь гео-поиском. И зачастую мне нужно показать на карте координаты пользователей, для того чтобы сделать какие-либо анализы. Для этой цели я, до определенного времени, успешно использовал Google Maps, пока, однажды, мне не понадобилось нанести на карту не много не мало 16 млн. координат.

Как я это сделал?
Читать дальше →

jQuery 1.4: 15 новых возможностей

Reading time7 min
Views6.5K
14 января появился на свет jQuery 1.4. Этот релиз содержит множество новых возможностей и улучшений. В этой статье рассматриваются те, которые вы, возможно, найдёте самыми полезными.
Читать дальше →

Gordon: среда исполнения Flash, реализованная на джаваскрипте

Reading time1 min
Views1.2K
Вот это сюрприз! Тобиас Шнайдер (Tobias Schneider) построил среду исполнения Flash, работающую прямо во браузере. Она реализована на чистом джаваскрипте и HTML5, и все исходники являются открытыми (MIT-лицензированными), и располагаются на GitHub.

Поглядите на Gordon в действии (хостинг демонстраций осуществил Пол Айриш).

Gordon работает волшебно в последних версиях Файерфокса, Хрома и Сафари (да, и в iPhone Safari, хотя демонстрация «blue» на моём 3G идёт утомительно медленно). Чтобы установить его себе, запустите «git clone git://github.com/tobeytailor/gordon.git». Я обнаружил, что с URL «file:///» демонстрации не грузятся (в силу системы зависимостей скрипта), так что направьте ваш вебосервер на корень Gordon, а браузер направьте на demos/.

Документации ещё никакой нету, так что неясно, насколько широкой совместимостью с Flash обладает Gordon, или в каком направлении станет развиваться. Однако, по крайней мере, это мощная заявка на зрелость открытых веботехнологий.
<body onload="new Gordon.Movie('trip.swf', {id: 'stage', width: 500, height: 400})"></a>
    <div id="stage"></a></div>
</body>
[Gordon (скриншот)]
Читать дальше →

Руководство для фрилансера по общению со «сложными» людьми

Reading time5 min
Views2.5K
Руководство для фрилансера по общению со «сложными» людьми Быть фрилансером, означает ли это, что вы больше не будете иметь дел с трудными людьми на работе?

На первый взгляд кажется, что это так. Как фрилансеры, многие из нас работают на себя (или по крайней мере, мы не находимся в офисе, окруженные другими людьми).

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

Однако, ни один фрилансер, на самом деле, не работает в одиночку. Мы можем находиться абсолютно одни в своём домашнем офисе, но всё-таки наш заработок зависит от других людей. Как минимум, всем фрилансерам приходится иметь дело с клиентами. Так мы зарабатываем.

Хотя мы, возможно, не сталкиваемся с теми ежедневными трудностями, которые встречаются при работе с другими людьми в офисе, фрилансеры все же должны знать, как вести дела с трудными людьми. Эта статья объяснит, в каких ситуациях вы можете столкнуться со сложными людьми и какие шаги стоит предпринять в таких случаях.
Читать дальше

Двунаправленный асинхронный обмен данными в веб-приложениях

Reading time4 min
Views21K
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →

phpDaemon — фреймворк асинхронных приложений

Reading time6 min
Views45K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →

Adaptive boosting

Reading time7 min
Views18K
Здравствуйте, на Хабре уже была статья Indalo, посвященная AdaBoost, точнее, некоторому его применению. Я же хочу более детально остановиться на самом алгоритме, заглянуть в его реализацию и продемонстрировать его работу на примере моей программы.

Итак, в чем же заключается суть методики Adaboost?
Читать дальше →

Download Master Plugin ломает Prototype-сайты

Reading time1 min
Views3.5K
С недавнего времени у меня на Клавогонках у некоторых пользователей начались проблемы совершенно мистического плана — не работали функции, которые ну никак не могли не работать, всплывали абсолютно дикого вида ошибки и гейзенбаги. Долго и мучительно пытаясь выяснить в чем проблема, и не без помощи сообразительных юзеров я обнаружил, что последняя версия Download Master (довольно популярная программа), выпущенная вроде бы где-то в ноябре, содержит удивительнейший Firefox-плагин, который ставится в браузер автоматически. Плагин этот зовется Download Master Plugin 1.2 и его удивительность заключается в том, что он подгружает в глобальное javascript-пространство страницы библиотеку jQuery целиком как она есть. По-настоящему подгружает, со всеми функциями, и (внимание!) с функцией $(). Тем самым, разумеется, ломая аналогичную функцию из Прототайпа.

Tест кейс

Оптимизация градиентов в Фотошопе

Reading time2 min
Views16K
Материал, скорее, для начинающих верстальщиков, например таких, что работают в Microsoft ;) На тему натолкнула одна картинка с одной популярной странички:

image

Дело в том, что весит картинка 55 211 байт. А вот она же, но уже размером 1 764 байт. Если вы думаете, что разница в формате (у меня png, а в оригинале gif), то вы правы лишь отчасти. Попробуйте пересохранить исходное изображение в png, врядли у вас получится серьезный выигрыш (у меня размер получился 45 кб). В общем, дело не в формате.
Тогда в чем же?

Страничка для счастливых обладателей IE6

Reading time1 min
Views6.1K
Наконец-то и я решился… Все новые проекты отныне будут иметь спец-страницу для Internet Explorer 6.

Изучив аналогичные решения в Интернете, решил создать свою страничку. Русский текст наскреб понемногу с разных проектов и отредактировал на свой вкус. Дизайн осознанно и намерено использовал майкрософтовский, чтобы хоть как-то повысить планку доверия для тех несчастных, что до сих пор сидят на IE6. Надеюсь, меня за это не осудят, тем более сделано это исключительно для многострадальных клиентов Майкрософта.
Читать дальше →

Побит рекорд самого короткого кода по определению IE

Reading time1 min
Views3.3K
Без малого год назад, я уже писал (http://habrahabr.ru/blogs/javascript/50544/) о самом коротком способе определение браузера Internet Explorer, но вот некто Aleko нашел еще более короткий вариант:

-[1,]

Всего 5 байт. Пример использования:
if(-[1,]){
alert("Not IE!");
}

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity