Как стать автором
Обновить
18
0
Елена @ElenaHell

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

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

Анти-паттерны Test Driven Development

Время на прочтение4 мин
Количество просмотров19K
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

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

Читать дальше →
Всего голосов 111: ↑109 и ↓2+107
Комментарии64

Документация API Карт Google теперь на русском языке!

Время на прочтение1 мин
Количество просмотров4.5K
Том Маншрэк, команда API Карт Google

За последний год мы перевели документацию по API Карт на большое количество языков, и разработчикам по всему миру стало легче использовать Карты Google на своих сайтах. В начале 2008 года мы выпустили, а недавно обновили, переводы на японский и упрощённый китайский языки.

За несколько последних месяцев мы тихо и незаметно выпустили ещё несколько переводов документации по API карт. В сентябре появились немецкий и испанский переводы, а совсем недавно вышли переводы на бразильский, португальский и русский языки. Эти переводы можно найти здесь:
Вы можете переключиться на переведённую документацию, выбрав язык из выпадающего списка в правом верхнем углу страниц сайта code.google.com. Если перевод текста страницы для для выбранного языка существует, то он будет показан (если его нет, то будет показан текст на английском).

Мы выбрали именно эти языки, потому что большинство неанглоязычных читателей документации API Карт говорит именно на них. Надеемся, что переводы подтолкнут новых разработчиков к использованию API Карт Google.

Замечание: мы стараемся поддерживать переведённую документацию в актуальном состоянии, но часто англоязычная документация содержит наиболее свежую информацию. Всем разработчикам следует время от времени заглядывать в англоязычный справочник по API Карт, который обновляется раз в несколько недель.
Всего голосов 32: ↑24 и ↓8+16
Комментарии3

Vse10.ru — онлайновый клавиатурный тренажер

Время на прочтение1 мин
Количество просмотров21K
image

vse10.ru — новый интернет-проект, который позволяет улучшить скорость набора на клавиатуре в любом месте, где есть интернет.

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

Мы постарались сделать проект максимально простым и удобным, по принципу «ничего лишнего».
Всего голосов 107: ↑99 и ↓8+91
Комментарии155

Проверка орфографии с помощью Google

Время на прочтение2 мин
Количество просмотров15K
Иногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним.

Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
<?xml version="1.0" encoding="UTF-8" ?><br/>
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><br/>
 <text>Текст для проверки</text><br/>
</spellrequest>
ignoredups — подсветка повторов
ignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)

Если всё успешно, мы получаем ответ вида
<?xml version="1.0" encoding="UTF-8"?><br><spellresult error="0" clipped="0" charschecked="272"><br> <c o="27" l="13" s="0"></c><br> <c o="73" l="11" s="1">орфографии и орфографии</c><br> <c o="190" l="11" s="1">пользоваться</c><br> <c o="226" l="13" s="0">пред оставляет пред-оставляет</c><br></spellresult>
Атрибуты тега spellresult:
error — произошла ли ошибка
charschecked — количество проверенных символов

В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата

В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.

P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…


UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).

UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3

UPD3: Список поддерживаемых языков

_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter
Всего голосов 88: ↑86 и ↓2+84
Комментарии45

Заметки о лучшем хостинге: часть первая

Время на прочтение5 мин
Количество просмотров14K
imageТак получилось, что до недавнего времени все мои web-проекты реализовывались на своих собственных серверах. И по этой причине мне ни разу не приходилось иметь дела с хостингом. Но всему приходит конец и в конце 2008 года я вдруг решил, что просто обязан купить себе хостинг и пару доменов.

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

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

UPD: доступна вторая часть статьи
Читать дальше →
Всего голосов 108: ↑84 и ↓24+60
Комментарии128

Познаём Java. Третья чашка: примитивные типы, и объекты. Базовые конструкции

Время на прочтение7 мин
Количество просмотров235K

Типа реальные типы


Думаю, после краткого экскурса в возможности Java и прочитывания пары десятков строк кода примеров, вам захотелось узнать, чем должен уметь оперировать каждый Java-программист. Что ж, давайте поговорим о примитивных типах, классах (в том числе нескольких основных), сравнении, передаче параметров и простых структурах в Java.
Поехали!
Всего голосов 38: ↑31 и ↓7+24
Комментарии109

Познаём Java. Вторая чашка: собираем классы в кучки. Пробуем апплеты

Время на прочтение5 мин
Количество просмотров79K

Чем обусловлена структура Java?


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

Как происходит загрузка классов?


Читать дальше →
Всего голосов 59: ↑48 и ↓11+37
Комментарии70

Познаём Java. Первая чашка

Время на прочтение3 мин
Количество просмотров21K

Что да как


Я решил поддержать начинание MaxElc и DarwinTenk, и начать потихоньку рассказывать про Java. Текст буду подавать «чашками» потому, что один из символов Java — чашка кофе. Большую часть я буду писать сам, изредка поглядывая в википедию и на официальный сайт языка — java.sun.com (раздел /docs).
Далее в тексте стоит разделять понятия «Java как язык» и «Java как платформа».
Читать дальше →
Всего голосов 150: ↑128 и ↓22+106
Комментарии141

Prolog, введение

Время на прочтение13 мин
Количество просмотров102K
Довольно оживленное обсуждение предыдущей стати (http://habrahabr.ru/blogs/programming/47416/) показало, что тема пролога оказалась интересна сообществу.
Чтобы заинтересовать еще более читателя и вместе с тем облегчить ему начало работы с этим языком, я решил написать немного начальных данных о прологе.

Кратко основные особенности.
Читать дальше →
Всего голосов 78: ↑64 и ↓14+50
Комментарии41

Сервис автоматической расстановки мягких переносов

Время на прочтение1 мин
Количество просмотров5.6K
Мало кто знает, что в HTML есть специальный символ для «мягкого» переноса — ­. Работает он так: если попадает на конец строки — появляется символ переноса, если не попадает — ничего не отображается. Очень удобно, но, к сожалению, вручную вставлять в текст такие символы — занимает слишком много времени. Сегодня обнаружил интересный сервис для автоматической расстановки.

Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии46

Впечатляющие «научные» эксперименты в домашних условиях + конкурс для Хабралюбителей от SmartVideos.ru

Время на прочтение2 мин
Количество просмотров1.4K
Умное ВидеоМногим читателям Хабра уже полюбились переводные научно-познавательные ролики. Хотел бы представить Вам еще два — о неньютоновской жидкости и «горячем» льде. Опыты не требуют каких-либо сложных ингредиентов или условий, но выглядят действительно эффектно.

Кроме того, для заинтересовавшихся я хотел бы провести небольшой конкурс с довольно привлекательными призами…

UPD. Первое видео от spiritus_sancti уже онлайн — www.youtube.com/watch?v=Y4z2VqgX-78!

UPD2. Второе видео онлайн — www.youtube.com/watch?v=PSiSHhw99Tw!

Читать дальше →
Всего голосов 73: ↑66 и ↓7+59
Комментарии68

Scrum и XP: заметки с передовой

Время на прочтение1 мин
Количество просмотров36K
image
Чтобы прочитать эту книгу вам понадобится всего лишь два-три часа. Чтобы её перевести участникам сообщества Agile Ukraine потребовалось 4 месяца…
Читать дальше →
Всего голосов 97: ↑95 и ↓2+93
Комментарии47

HTML 5: пять вещей вызывающих особый интерес

Время на прочтение6 мин
Количество просмотров8.2K
imageHTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям.

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

Это статья нашего гостя Jacob Gube, web-разработчика и дизайнера, автора Six Revisions — блога о web-разработке и дизайне.
Читать дальше →
Всего голосов 130: ↑123 и ↓7+116
Комментарии190

Немного о Prolog'е

Время на прочтение3 мин
Количество просмотров29K
Язык пролог незаслуженно обладает довольно узкой известностью, между тем это довольно интересный язык, который несомненно стоит того, чтоб познакомиться с ним.

Если честно, мне лень описывать синтаксис и особенности пролога, кому интересно, без труда найдут достаточное количество материала в интернете, благо язык довольно академичный. Скажу лишь, чем меня он заинтересовал. Дело в том, что пролог, по сути единственный язык, предлагающий качественно другой подход к программированию, чем хорошо известные императивный, ООП (который, по сути, тоже императивный, но нацелен на структурирование и модульность), функциональный. Можно назвать этот подход декларативно-логическим.
Не претендуя на точность терминологии, этот подход можно определить как такой, при котором программа представляет собой описанние теми или иными конструкциями языка программирования самого условия задачи. Роль ЯП при этом понять это описание, и сделать из него некоторый вывод, который окажется ни чем иным как правильным решением задачи.
Проиллюстрируем, что под этим подразумевается. Возьмем следующую задачу.

Читать дальше →
Всего голосов 90: ↑81 и ↓9+72
Комментарии119

Иерархические структуры данных и производительность

Время на прочтение14 мин
Количество просмотров22K

Введение



В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов.

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

Читать дальше →
Всего голосов 123: ↑120 и ↓3+117
Комментарии27

Полный перевод Web Standards Curriculum

Время на прочтение1 мин
Количество просмотров840
image

Как правило, реализация любой идеи начинается с обсуждения планов, графиков и прочих неотъемлемых компонентов серьёзного проекта. Впрочем, бывает и так, что люди без лишних разговоров просто делают то, что считают полезным, тем самым преподнося сюрприз окружающим. Один из примеров тому — практически полный перевод на русский язык цикла статей, входящих в курс Web Standards Curriculum, являющийся частью образовательного проекта Opera. Посему приглашаю всех заинтересованных в данных статьях, но не обладающих хорошими навыками владения английским языком, ознакомиться с русскоязычным вариантом. Уверен, что вы найдёте массу полезной информации, пригодной для использования в своих разработках и проектах.

Читать Web Standards Curriculum на русском
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии37

Издержки больших проектов или взгляд на программирование в команде изнутри

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

Итак, собственно, к делу.

Мы занимаемся системами электронной биржевой торговли, аналитикой рынка и поставкой маркет-данных в реальном времени. К таким системам предъявляются повышенные требования по надежности — каждая ошибка может привести к потере больших денег.
Читать дальше →
Всего голосов 82: ↑76 и ↓6+70
Комментарии112

Верстка скругленных границ и острых углов

Время на прочтение4 мин
Количество просмотров20K
Сложность элементов интерфейса увеличивается с каждым новым макетом, что доставляет немало хлопот верстальщикам. Развивающиеся технологии позволяют создавать в WEBе сложные приложения (Google не даст мне соврать), поэтому дизайнеры себя не сдерживают и рисуют всё более навороченные вещи. Как правило, это приводит к большому количеству графики на страницах.

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

Читать дальше →
Всего голосов 190: ↑183 и ↓7+176
Комментарии96

Паттерны форм подписки, часть вторая

Время на прочтение7 мин
Количество просмотров2.3K
Это вторая часть перевода интересного исследования, которое проводили авторы популярного интернет сайта Smashing Magazine. Первую часть вы пожете прочитать здесь. В этот раз авторы затрагивают вопросы капчи, сообщения «Спасибо за регистрацию», кнопки «Отмена» на формах и некоторые другие интересные вопросы.


3. Функциональность форм


В первой части нашего исследования мы рассмотрели как расположение ссылок на подписку и форм регистрации, так и их внешний вид. Те не менее, не имеет значения, как привлекательно выглядит дизайн, если формы не работают как надо, число заполненных форм будет невелико. Давайте рассмотрим теперь как функционал форм подписки, так и связанные с ними типичные проблемы, паттерны и решения, применяемые в дизайне таких форм.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии26

Паттерны дизайна веб-форм: формы подписки

Время на прочтение9 мин
Количество просмотров7.1K
Это перевод довольно новой статьи, которая вышла 4 июля 2008 года. Если вы уже читали ее, то навряд ли найдете что-то новое, но для тех, кто не знаком с оригиналом в статье найдется масса интересного. Сначала я хотел перевести и подписи к картинкам, но позже понял, что не стоит этого делать, так как статья ориентирована на грамотного читателя, который способен сам определить простейшие фразы.

UPD: Опубликована вторая часть статьи habrahabr.ru/blogs/ui_design_and_usability/45680


Когда вы хотите увеличить доход вашего сервиса вы должны увеличить количество заполнений ваших веб-форм. Даже, если, на первый взгляд, у вас есть какие-то революционные идеи для того чтобы удивить посетителей, недостаточно просто добавить возможность регистрации на вашем сайте. Для того, чтобы сервис достиг максимальных посещений мы, дизайнеры, должны предоставить пользователю хорошие решения (good user experience). Мы должны завлечь их, описать им, как работает сервис, объяснить им, почему стоит заполнить форму и описать выгоду, которую они от этого получат. И, конечно, мы должны сделать их участие максимально простым.

Тем не менее, разработка дизайна веб-форм — это не простое дело. И здесь есть одна простая причина: никто не любит заполнять формы — ни в оффлайне ни в онлайне. Следовательно, как дизайнеры, мы обязаны найти дизайнерские решения, чтобы сделать заполнение форм делом простым, интуитивным и безболезненным.

Но как на самом деле мы находим такие решения? Где в разметке должна располагаться ссылка на форму? Какой у нее должен быть дизайн? Как мы должны выделить подписи, и какое выравнивание у них должно быть? Какие паттерны дизайна применяются в современных веб-сайтах? Это именно те вопросы, которые мы задавали себе. И чтобы получить ответы мы провели наше обозрение.

Ниже мы представляем результаты обзора по текущим паттернам дизайна веб-форм — результат анализа ста популярных веб-сайтов, в которых веб-формы (должны бы) многое значат. Мы решили начать с форм регистрации. Ниже мы представляем первую часть наших исследований, вторая часть результатов обозрения будет опубликована на следующей неделе [прим. перев. — перевод второй части будет позже].
Читать дальше →
Всего голосов 96: ↑90 и ↓6+84
Комментарии50

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирована
Активность