Обновить
37
0
Пётр Ерёменко@prg

Пользователь

Отправить сообщение

Эссе о валидации данных

Время на прочтение8 мин
Охват и читатели32K
В заметке «Можно ли делить на 0,01 ?» на сайте тестировщиков я написал, что при тестировании нужно проверять согласованность валидаторов входных данных с логикой обработки этих данных приложением. Но из комментариев к этой заметке я понял, что для понимания того, как надо тестировать валидацию данных, надо понимать, как она должна работать, что можно считать правильным, а что нет. Поэтому я написал об этом отдельную статью. В ней рассматривается три вопроса: 1) зачем вообще нужна валидация данных, и 2) где и когда может выполняться валидация данных, 3) какие бывают разновидности проверок. Ну и конечно продемонстрировано, как всё это выглядит на живых примерах. А может быть мои рассуждения окажутся интересны не только тестировщикам, но и разработчикам.
Читать дальше →

.NET 4.0: что нового в базовых классах (BCL)? Подробный обзор

Время на прочтение9 мин
Охват и читатели3.3K

Visual Studio 2010 и .NET Framework 4 Beta 2 уже доступны для загрузки. .NET 4 Beta 2 содержит некоторое количество нового функционала и улучшений в базовых классах (BCL) в дополнение к тем, которые мы представили ранее в .NET 4 Beta 1. Многие эти улучшения были произведены благодаря отзывам и рекомендациям от клиентов, полученным через Microsoft Connect.
Читать дальше →

VS 2010 улучшения в Intellisense

Время на прочтение2 мин
Охват и читатели3.4K
image В сегодняшнем посте, я расскажу о небольшом, но очень удобном нововведении в intellisense у VS 2010, которое улучшает фильтр автодополнения типов и членов. Вы сможете более просто и эффективно работать с API при написании кода.

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

GPS компонент

Время на прочтение1 мин
Охват и читатели1K
image Еще одно пополнение на CodePlex — новый компонент для работы с GPS.
GPS.NET прежде всего является коммерческим .NET компонентом, разрабатываемый GeoFrameworks LLC c 2004 года. В 2009 Джон Пирсон решил выложить полный исходный код GPS.NET для публичного использования. Текущая версия продукта 3.0, которая вышла незадолго до публикации на CodePlex. Данный фреймворк предлагает интуитивный GPS функционал в реальном времени, который максимально эффективно работает на любом компьютере, мобильном устройстве и NMEA-совместимыми GPS устройствами.
Узнать возможности компонента

Построение regexp'a по входным строкам S1..SN

Время на прочтение3 мин
Охват и читатели2.1K
Вот совершенно недавно столкнулся с задачкой, по которой не смог накопать не то, чтобы каких либо библиотек, но даже теории или алгоритмов. Т.к. время поджимало, решил сам разбираться с задачей. Написал статью для тех, кто с подобной задачей столкнется в будущем, да и интресна критика. Как бы вы решали подобную задачу?

Итак, задача ...


На входе алгоритма есть набор строк S1..SN. Требуется, по данным строкам построить такое минимальное регулярное выражение R, чтобы R(Si)=true, i [1,N] (N порядка нескольких тысяч).
Требование минимальности — не строгое, и доказывать минимальность построенного regexp'a не требуется. Если строки S1..SN обладают некоторой схожей структурой, то regexp должен выявлять эту структуру. Стандартное задание программисту — в меру конкретизировано, но и с некоторой свободой действий.
Читать дальше →

Показать себя

Время на прочтение3 мин
Охват и читатели768
Эта заметка должна была стать первой главой книги о веб-разработке, компьютерной графике и дизайне. Вернее, об идеологических моментах работы людей, так или иначе связанных с визуальным сектором информационных технологий. Но я ещё не уверен, что осилю целую книгу в течении хотя бы одного года, поэтому публикую пока как есть. Заодно посмотрю на сколько такой материал будет востребован целевой группой и скорректирую свои планы. А может и вовсе заброшу это дело.

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


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

Нам предлагают три сценария на выбор и как перед Ильями Муровцами рисуют три дорожки с указателями — «Выиграть миллион в лотерею», «Украсть», «Заработать тяжким трудом». Из зала подсказывают, что нужно заработать.

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

Пишем статью

Время на прочтение3 мин
Охват и читатели2.2K
В продолжение темы habrahabr.ru/blogs/study/41589
Курсивом — то, что надо изменить в вашей статье.
// комментарии

Научная статья
Читать дальше →

Дело о потерянных строках в DataView

Время на прочтение3 мин
Охват и читатели2.1K
Отлаживая WPF-ный редактор для таблицы БД, столкнулся с Exception-ом при переходе между соседними ячейками с помощью клавиатуры.
Казалось бы, обычное дело — кто из нас эксепшенов не нюхал? Да и компонент DataGrid из WPF Toolkit весьма экспериментальный, так что удивляться нечему. Однако, кое-что меня насторожило.

что же?

Как написать компонент к Firefox на C++

Время на прочтение5 мин
Охват и читатели3.7K
Как написать на C++ компонент для Firefox, так, чтобы его потом можно было использовать из яваскриптового extension или даже из обычной веб-страницы.
Вот как

Начало научной карьеры (часть 3)

Время на прочтение4 мин
Охват и читатели8.5K
Разобравшись с высшим образованием в виде бакалавриата и магистратуры, можно перейти к первому шагу на пути к настоящей научной карьере — к поступлению в аспирантуру.

Для начала необходимо пояснить, что отношение к аспирантуре в России и за границей немного отличается.

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

На Западе для трудоустройства «в миру» практически всегда достаточно бакалаврского, максимум, магистерского образования. Законченная аспирантура требуется исключительно в научной карьере (либо в тех редких случаях, когда частная фирма реально занимается какой-либо исследовательской деятельностью).
Читать дальше →

Методы защиты веб-формы без капчи

Время на прочтение3 мин
Охват и читатели63K

О чём речь?


В последнее время на Хабре было предложено довольно много идей для капчи. Сложная, умная, смешная, капча остаётся одним из основных способов защиты формы от ботов.

Однако, одновременно с этим, капча является проблемой юзабилити, поскольку заставляет пользователя выполнять лишнее действие.

В этом обзорном посте я бы хотел рассмотреть незаметные для пользователя методы защиты от ботов.

Методы защиты


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

Компилятор выражений

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

Пример:
   выражение: «x + 10 == 5 * y / (1 + z*2)»;
   требуется уметь вычислять это выражение для любых значений x, y и z.

И конечно при этом надо учитывать приоритеты операторов.

Для решения нужно сделать компилятор, который по строке строит объект «Вычислимое Выражение». У этого объекта будет метод «вычислить для данных значений переменных».

Решение на Java, но может быть легко переведено на другие языки.

Подробнее...

Парсер математических выражений

Время на прочтение5 мин
Охват и читатели48K
Спасибо всем! Статья набрала необходимое число плюсов и автор к нам присоединяется! Вот и он: elw00d
Представляю вниманию товарищей-дотнетчиков библиотечку собственного написания, с помощью которой можно легко обращаться с несложными математическими функциями, переводя их из строковой формы инфиксной записи в обработанное представление, составленное в постфиксной нотации, и обратно. Для чего это может понадобиться?

К примеру, можно написать приложение, которое принимает ввод функции пользователем в виде строки, анализирует корректность синтаксиса, вычисляет его значение в указанных точках, оптимизирует введенное выражение, минимизируя количество операций, требуемых для вычисления, и может выдавать результат в виде строки, представляющей собой корректное строковое представление оптимизированной функции. В качестве конкретных применений можно отметить различные специализированные калькуляторы (в том числе, построенные наподобие программируемых), приложения, используемые для построения графиков или других отчетов, требующие задания начальных функций, или как оригинальное средство для построения защиты от спама / автоматических регистраций.
Читать дальше →

Тривиальные задачи по вёрстке

Время на прочтение4 мин
Охват и читатели60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

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

Кунг-фу поддержки проектов

Время на прочтение3 мин
Охват и читатели1.5K
Наверно каждому из программистов приходилось сталкиваться на новом или на не новом месте работы с необходимостью поддерживать «чужой» проект.

Программисту удается написать код компилилируемый или интерепретиуемый, но не каждому понятный.

Все реагируют на «чужой» код по разному. Одних бросает в холодный пот, другие стиснув зубы разбираются. Так получилось, что я наблюдал этот процесс изнутри, как сторонний наблюдатель, как team leader и как специалист передающий свой код «новичку»

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

Огнелис в роли сервера разработки

Время на прочтение2 мин
Охват и читатели717
Прочитал только что статью про пример использования telnet-сервера в firefox и наткнулся на комментарий пользователя @merlin_rterm, который упомянул про расширение POW, или Plain Old Webserver. Данное расширение позволяет запускать серверные скрипты средствами огнелиса. Далее опишу как настроить огнелис для работы с PHP и SQLite под Ubuntu. Думаю, что под Mac и Windows инструкция не будет сильно отличаться.
Читать дальше →

Subversion: cлияние переименований файлов

Время на прочтение3 мин
Охват и читатели3.6K
— Зачем ты, Белка, летишь за мной, Кабаном?
— Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
— Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
— Кабан, ты дятел! Как понял? Приём.
— Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
— Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
Виктор Шендерович

Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
Читать дальше →

Оптимизация процесса создания unit-тестов

Время на прочтение6 мин
Охват и читатели5K
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример

Непопулярные аспекты тестирования

Время на прочтение5 мин
Охват и читатели2.7K

Непопулярные аспекты тестирования


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

Я соглашаюсь с тем, что данная статья распространяется на условиях CC-NC-BY

Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python

Время на прочтение8 мин
Охват и читатели55K
Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Бишкек, Кыргызстан, Кыргызстан
Дата рождения
Зарегистрирован
Активность