Search
Write a publication
Pull to refresh
462
0
Краковецкий Александр @sashaeve

CEO DevRain

Send message

Взгляд на современные системы защиты от спама веб-форм

Reading time7 min
Views12K

О чем пойдет речь


Наверное никогда не прекратятся бои людей желающих проставить свои ссылки или что-то порекламировать, с людьми не желающими видеть у себя в комментах или на форумах «левую рекламу» а иногда даже и «правую».

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

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

Виртуальный хор

Reading time1 min
Views5.9K
Хор из более 200 человек из 12 стран мира создали Eric Whitacre и Scott Haines живущие в Лос-Анджелесе.

Идея создания хора пришла Эрику после записи песни онлайн. Он решил создать настоящий виртуальный хор. Записав каждый голос отдельно, он впоследствии соединил их в один прекрасный хор. Замечательная идея и её воплощение. Смотрите интервью Эрика (Eric Whitacre ).



Участники хора проживают в: Австрии, Аргентине, Канаде, Англии, Германии, Ирландии, Новой Зеландии, Филиппинах, Сингапуре, Испании, Швеции и Соединённых Штатах Америки. И ты, хабра-человек, можешь легко присоединится к этим людям.

Читать дальше →

Новая версия DriverPack Solution

Reading time3 min
Views2K

Дорогие коллеги!


Мы рады сообщить о выходе новой версии программы для установки драйверов DriverPack Solution 10.6!

В процессе работы над новой версией мы выделили два направления: первое — улучшение самой программы, второе — развитие Web-сервисов (сайт: drp.su и сервис: devid.drp.su ).


Наша цель – собрать все драйвера в одном месте.
Читать дальше →

О сложностях программирования, или C# нас не спасет?

Reading time5 min
Views7K
Picture 1
Программирование это сложно. С этим никто, надеюсь, не спорит. Но вот тема новых языков программирования, а точнее поиск «серебряной пули» всегда находит бурных отклик в умах разработчиков программного обеспечения. Особенно «модной» является тема превосходства одного языка программирования над другим. Ну, к примеру, что C# «круче», чем C++. И хотя holy wars — это не та причина, по которой я пишу этот пост, тем не менее, что называется «наболело». Ну не поможет C#/lisp/F#/Haskell/… написать изящное приложение, взаимодействующее с внешним миром, и все тут. Вся изящность теряется, стоит захотеть написать что-то реальное, а не пример «сам в себе».

Этот пост продолжает мысли моего коллеги, описанные в посте "Ммм… Супер язык… Дайте мне Си++ пожалуйста!". Та статья не нашла понимания у общественности. Теперь я попробую.

Под катом несколько фрагментов на C#, взятые из модуля интеграции статического анализатора кода PVS-Studio в популярную среду Microsoft Visual Studio. Этими фрагментами я хочу показать, что писать, к примеру, на C# совсем не проще, чем на, C++. Желающие поспорить — «велкам в камменты». Кто хочет сказать, что автор кода просто не умеет писать программ — тоже пишите, обсудим.
Читать дальше →

Использование Thrift в .NET

Reading time5 min
Views13K
Хочу поделиться с вами примером того как можно использовать такую удобную штуку как Thrift в своих .NET проектах.

Для тех кто не знает, Thrift — это фреймворк для облегчения взаимодействия между кодом написанным на разных языках, а именно C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk и OCaml.

Thrift используется и был изначально создан Facebook. Так же неоднократно упоминался здесь, на Хабре, но примеров для .NET я не нашел, кстати пошаговое руководство для .NET отсутствует и на официальном сайте. В гугле если честно, тоже не смог найти, хотя может плохо искал.

Thrift позволяет один раз описать сервис, структуры данных и даже исключения, а потом сгенерировать код для всех поддерживаемых языков. Таким образом, если вы, например, напишете сервер с использованием Thrift на .NET, то вы
  1. Сэкономите кучу времени для написания клиент серверного приложения, например с использованием сокетов.
  2. Почти автоматически получаете клиентов на всех поддерживаемых языках.
В своем примере я реализую простейший сервис, который просто будет возвращать время. Но имея такой макет достаточно легко расширить его до чего-нибудь полезного.
Читать дальше →

Итоги 2010 TopCoder Open

Reading time3 min
Views2.1K
Главный турнир года на TopCoder (хабраанонс) закончился уже неделю назад, а на Хабре это важнейшее событие до сих пор не освещено! Это странно и удивительно, и я, верный адепт TopCoder, спешу исправить это недоразумение — тем более что в этом году я имела возможность наблюдать финалы вживую.

Algorithm



Самое зрелищное и эмоционально насыщенное соревнование турнира и в этом году не обмануло ожидания зрителей. Многократный чемпион прошлых лет Петр Митричев (Petr) удивил и немножко шокировал своих поклонников, выбыв из соревнования в первом же полуфинале со всего лишь одной решенной задачей. Второй фаворит, TianCheng Lou (более известный как ACRush), уверенно выиграл свой полуфинал и лидировал весь финал до самых системных тестов, которых не выдержала его третья задача, отбросив его на второе место под слитное «аах» зрителей.

Читать дальше →

Распознавание почтовых адресов

Reading time15 min
Views25K
Дело началось с того, что одна небольшая английская компания решила рассылать рекламные листовки своим существующим и потенциальным клиентам.
Обнаружилась проблема: есть отдельная внутренняя база клиентов, делавших заказы по телефону; отдельная база веб-клиентов, делавших заказы на сайте; и несколько баз «потенциальных клиентов» от разных информаторов.
Тысячи клиентов попали сразу в несколько баз, или даже несколько раз в одну базу.
Если клиент, «засветившийся» пять раз, получит пять одинаковых рекламных листовок с немного отличающимся написанием имени или адреса, то эффект от такой кампании получится противоположный — не говоря уже о бессмысленных расходах на лишние листовки.
Как же отсеять повторы в списке рассылки?

Среди всех данных о клиенте самое однозначное, что его определяет — это почтовый индекс (postcode). Этого мало, но это хорошая отправная точка.
Читать дальше →

Программный код и его метрики

Reading time19 min
Views138K
Измерения...
Одной из тем в программировании, к которым интерес периодически то появляется, то пропадает, является вопрос метрик кода программного обеспечения. В крупных программных средах время от времени появляются механизмы подсчета различных метрик. Волнообразный интерес к теме так выглядит потому, что до сих пор в метриках не придумано главного — что с ними делать. То есть даже если какой-то инструмент позволяет хорошо подсчитать некоторые метрики, то что с этим делать дальше зачастую непонятно. Конечно, метрики — это и контроль качества кода (не пишем большие и сложные функции), и «производительность» (в кавычках) программистов, и скорость развития проекта. Эта статья — обзор наиболее известных метрик кода программного обеспечения.
Читать дальше →

Книга с алгоритмами на C++ (архив сайта e-maxx.ru)

Reading time1 min
Views46K
Есть один замечательный сайт, посвящённый алгоритмам — наверняка многие из Вас о нём слышали и выкачивали его содержимое Teleport’ом или чем-нибудь подобным. Но совсем недавно Максим (автор сайта) создал очень удобную pdf-книжку из всех статей, что присутствовали на сайте. Я знаю, что ему будет приятно узнать, что его труды пригодились IT-сообществу, поэтому я и решил написать тут о электронной книге с алгоритмами.
Читать дальше

Карьерное плато

Reading time1 min
Views2.2K
Продолжая тему рассуждений про карьеру, мы с хабраюзером eagleson записали новое видео: «Карьерное плато».



Коротко и по делу (всего 18 минут) обсудили следующие темы:
  • Динамика ИТ-специалиста: рост, рост, рост, ЗП, семья, ипотека…
  • Почему так, где движение?
  • С любого плато можно улететь: нужно строить самолет!


Подарите себе 18 минут времени, чтобы задуматься над вопросам «Сколько лет до вашего плато?» и «Строите ли свой самолет?»

Работа с Tier Interaction Profiler ( TIP )

Reading time6 min
Views2.1K
Это малоизвестная функция входящая в состав Visual Studio 2010 Premium которой я хочу посвятить немного времени и познакомить вас с ней. Она полезна когда вы пытаетесь определить почему ваше приложение ASP.NET не работает с такой производительностью с которой должно было бы, и как построены запросы приложения к базе данных, улучшают ли они производительность или снижают.
Читать дальше →

Алгоритм роя частиц

Reading time8 min
Views65K

Введение


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


Читать дальше →

Penisland, или как написать спеллчекер

Reading time7 min
Views12K
Есть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.



Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
  • умел бы выявлять три (и более) ошибки в запросе;
  • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
  • не требовал много кода для реализации
  • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

Остальное — под катом.
Читать дальше →

Ликвидатор велосипедов: часть 1

Reading time3 min
Views15K
imageЭтим постом я начинаю серию статей, которые должны помочь каждому разработчику избавиться от велосипедов в своих последующих и текущих проектах. Усилить код и увеличить функционал. Каждый из нас хочет внести в свою программу нечто, что сделает ее богаче, но зачастую решение либо не находится, либо лень тратить время на поиски… Либо внутри сидит глупая уверенность что это можно реализовать быстро и не менее функционально. В любом случае я хочу чтобы каждый пробежался глазами по спискам библиотек, которые я вам предоставлю на суд, и чтобы у каждого эти библиотеки отложились в памяти. И когда их функционал пригодится в будущем, я очень надеюсь что вы вспомните этот пост и поищите эти библиотеки вместо того чтобы писать все новые и новые велосипеды, полные палок в колесах.
Начну я с оконных менеджеров.
Читать дальше →

Что такое Хабрахабр?

Reading time1 min
Views12K
Сегодня мы приготовили нечто особенное – выпуск Рунетологии с Денисом Крючковым, создателем Хабрахабра.

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

Ведь как и все социальные-медиа последних лет, Хабрахабр был создан случайно, рос помимо воли авторов и в общем стал тем, чего никто не ожидал. Это хорошо видно по программе — каждый раз, когда Крючков отвечает «не знаю, как-то так получилось».

Так что же вообще получилось? Коллективный блог? Новостной сайт? Социальное медиа? Социальная сеть? MMORPG?

Смотрите и решайте сами.



Напоминаем, что видеоверсия программы Рунетология выходит с лета 2010 года при поддержке компании StartupIndex. Все выпуски доступны на нашем сайте в специальном разделе.

Муравьиные алгоритмы

Reading time8 min
Views85K

Предисловие


Совсем недавно в этом блоге была опубликована статья, посвященная алгоритму поведения роя пчел. Данная статья рассказывает о другом алгоритме роевого интеллекта, называемом муравьиным алгоритмом. Она состоит из введения, вкратце рассказывающего о заимствованном природном механизме, описания оригинального алгоритма Марко Дориго, обзора других муравьиных алгоритмов и заключения, в котором указываются области применения муравьиных алгоритмов и перспективные направления в их исследованиях.

Введение


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

Эти факты, однако, никак не согласуются с успешностью муравьев как вида. Они существуют на планете более 100 миллионов лет, строят огромные жилища, обеспечивают их всем необходимым и даже ведут настоящие войны. В сравнении с полной беспомощностью отдельных особей, достижения муравьев кажутся немыслимыми.
Читать дальше →

Куда мы пришли?

Reading time2 min
Views2K
Здравствуйте, Хабропосетители.

Спешу вам сообщить, что компания Ciklum расширяет свою региональную сеть офисов. До середины 2010 года центры разработки Ciklum находились в Киеве, Харькове, Днепропетровске и Донецке. В августе было принято стратегическое решение пойти в Минск, Винницу и в Одессу. В связи с этим, в компании появились новые проекты, расширились существующие, и возникла потребность в высококвалифицированных кадрах в этих городах.
Читать дальше →

Опубликован весь архив Computer Science клуб при ПОМИ РАН

Reading time2 min
Views6.2K
Добрый день!

Как представитель проекта Лекториум рад сообщить — мы опубликовали весь архив Computer Science клуба.
Кроме того, почти год назад мы организовали запись всех лекций на хорошие камеры и микрофоны.
А в этом году планируем подключить вебинары.


Большинство лекций читается на русском языке. Все записи снабжены презентациями и описаниями.

UPD. Кратко. Старые лекции в плохом качестве, а новые с 2010 года с хорошим звуком и в 720p.
UPD 2 Расширили канал, видео грузится теперь без проблем.

Под катом перечень курсов и несколько вопросов касательно вебинаров.
Читать дальше →

Singleton (Одиночка) или статический класс?

Reading time6 min
Views197K
Статья будет полезна в первую очередь разработчикам, которые теряются на собеседованиях когда слышат вопрос «Назовите основные отличия синглтона от статического класса, и когда следует использовать один, а когда другой?». И безусловно будет полезна для тех разработчиков, которые при слове «паттерн» впадают в уныние или просят прекратить выражаться :)

Что такое статический класс?


Для начала вспомним что такое статический класс и для чего он нужен. В любом CLI-совместимом языке используется следующая парадигма инкапсуляции глобальных переменных: глобальных перменных нет. Все члены, в том числе и статические, могут быть объявлены только в рамках какого-либо класса, а сами классы могут (но не должны) быть сгруппированы в каком-либо пространстве имен. И если раньше приходилось иммитировать поведение статического класса с помощью закрытого конструктора, то в .NET Framework 2.0 была добавлена поддержка статических классов на уровне платформы. Основное отличие статического класса от обычного, нестатического, в том, что невозможно создать экземпляр этого класса с помощью оператора new. Статические классы по сути являются некой разновидностью простанства имен — только в отличие от последних предназначены для размещения статических переменных и методов а не типов.

Готовимся к собеседованию дальше?

Важно: Уязвимость безопасности ASP.NET

Reading time7 min
Views9.8K
Несколько часов назад мы выпустили рекомендации по безопасности в ASP.NET (Microsoft Security Advisory). Эта уязвимость существует во всех версиях ASP.NET.

Эта уязвимость была публично раскрыта вечером в пятницу на конференции по безопасности. Мы рекомендуем все клиентам использующим ASP.NET немедленно применить временное решение (описанное ниже) для предотвращения атак с ее использованием.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity