В продолжение статьи Евгения Ческидова «Яндекс. Директ. Анализируем конкурентное окружение» я хочу показать, как при помощи не очень сложных расчетов и API Яндекса вытащить из Директа буквально всю информацию о рекламных кампаниях конкурентов. Сразу скажу, что идея на практике еще не проверялась, сам факт наличия всей информации и, соответственно, возможности этого расчета был показан Ческидовым только вчера, а алгоритм родился буквально сейчас. Но математически вроде бы всё сходится. Осторожно, под катом много формул.
User
Алгоритм популярности пользователя на сайте — «Нестандартный подход к стандартным вещам»
3 min
5.7KВсе видели на сайтах систему рейтинга статей и материалов. Многие ее даже делали сами, но не каждый делал рейтинг людей на сайте.
В этой статье я поведаю как сделать качественную систему рейтинга для пользователей вашего ресурса.
В этой статье я поведаю как сделать качественную систему рейтинга для пользователей вашего ресурса.
+68
Регистрация своей фирмы собственными руками, туду-лист
12 min
51KДисклаймер: описываю только свой личный опыт и мнения автора могут не совпадать с мнением автора. Статья огромная, читать много.
Пишу эту статью, и представляю себе тебя, читателя Хабра, которой в обеденный перерыв залез почитать что-нибудь для развития. А этот читатель, т.е. ты (да, не отворачивай глаза от букв, именно ты) давно наслышан, что своё дело – это круто. И, может быть, как раз не хватало лёгкого пинка, чтобы выйти из зоны будничного комфорта и что-нибудь, да предпринять.
Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.
Для создания фирмы необходимо:
Пишу эту статью, и представляю себе тебя, читателя Хабра, которой в обеденный перерыв залез почитать что-нибудь для развития. А этот читатель, т.е. ты (да, не отворачивай глаза от букв, именно ты) давно наслышан, что своё дело – это круто. И, может быть, как раз не хватало лёгкого пинка, чтобы выйти из зоны будничного комфорта и что-нибудь, да предпринять.
Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.
Для создания фирмы необходимо:
+330
Как создать вебсайт для мобильных устройств
3 min
63KСтили
User Agent
Один из способов включения стилей для мобильного устройства — это использование User Agent, которую получает сервер от клиента.
Этому может помочь набор скриптов: code.google.com/p/mobileesp, а также сервис от яндекса api.yandex.ru/detector
При работе с User Agent только одна проблема — это постоянно появляющиеся новые User Agent.
+123
Ну очень простая идея, которая повышает эффективность тестирования в разы
3 min
13KКак обычно строят процесс тестирования непросветлённые тест-менеджеры?
Они стараются протестировать всё. Они тщетно пытаются протестировать всё. В результате в баг-трекере есть ошибка о том, что программа крашится при нажатии на самую редкоиспользуемую кнопочку 286 раз. Ошибка про странный серый пиксель в нижнем правом углу программы тоже заведена. Команда трудилась в поте лица по ночам и выходным.
Релиз.
Не работает основной функционал.
Почему такое возможно?
1. Заведение всех подряд ошибок мешает разработке. Разработчики тратят своё время на исправление минорных ошибок и вносят новые, зачастую более серьёзные.
2. Потраченное на мелочи время не дало возможности проверить более серьёзные пользовательские сценарии и найти более критичные дефекты.
3. Обратная связь по статусу сборки предоставлялась разработчикам с запозданием: вместо критичных дефектов непрерывно сыпались миноры.
4. Проектный паттерн «дохлая рыба» сыграл своё дело: все участники команды прекрасно понимали, что протестировать всё нельзя, и это не могло не сказаться на качестве работы. А реалистичных целей им никто не поставил…
Что просветлённые тест-менеджеры делают по-другому?
Что они поменяют в первую очередь?
Они стараются протестировать всё. Они тщетно пытаются протестировать всё. В результате в баг-трекере есть ошибка о том, что программа крашится при нажатии на самую редкоиспользуемую кнопочку 286 раз. Ошибка про странный серый пиксель в нижнем правом углу программы тоже заведена. Команда трудилась в поте лица по ночам и выходным.
Релиз.
Не работает основной функционал.
Почему такое возможно?
1. Заведение всех подряд ошибок мешает разработке. Разработчики тратят своё время на исправление минорных ошибок и вносят новые, зачастую более серьёзные.
2. Потраченное на мелочи время не дало возможности проверить более серьёзные пользовательские сценарии и найти более критичные дефекты.
3. Обратная связь по статусу сборки предоставлялась разработчикам с запозданием: вместо критичных дефектов непрерывно сыпались миноры.
4. Проектный паттерн «дохлая рыба» сыграл своё дело: все участники команды прекрасно понимали, что протестировать всё нельзя, и это не могло не сказаться на качестве работы. А реалистичных целей им никто не поставил…
Что просветлённые тест-менеджеры делают по-другому?
Что они поменяют в первую очередь?
+61
История развития и оптимизаций одного высоконагруженного ресурса
5 min
14KВведение
Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.
Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
+188
Penisland, или как написать спеллчекер
7 min
12KЕсть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.
Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
Остальное — под катом.
Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
- умел бы выявлять три (и более) ошибки в запросе;
- умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
- не требовал много кода для реализации
- мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок
Остальное — под катом.
+129
Когда не нужна тригонометрия
4 min
53KПросматривая различный код по выводу на экран какой-нибудь даже примитивной графики, я заметил чрезмерную любовь некоторых программистов к тригонометрии. Часто код пестрит синусами, косинусами и арктангенсами там, где без них можно обойтись. Этим грешат даже хорошие программисты, которые способны спроектировать сложную систему, но почему-то не освоили вектора в объёме школьной программы. Буквально азов векторной алгебры хватает для решения многих насущных проблем. В этом топике я хочу провести краткий ликбез, напомнить основные действия с векторами на плоскости и в качестве примера решить две задачи без тригонометрии: поиск отражённого луча по падающему лучу и произвольно расположенному зеркалу, а также рисование наконечника стрелки. Если вы можете представить в голове рисование произвольно направленной стрелки без синусов и косинусов, смело пропускайте этот топик. Для остальных постараюсь объяснять попроще.
+199
Компрессия данных в системах промышленной автоматизации. Алгоритм SwingingDoor
5 min
9KЗдравствуйте, уважаемые читатели. Хочу представить вашему вниманию описание алгоритма компрессии данных SwingingDoor и рассказать о том, как мы его применяем.
По роду деятельности я занимаюсь разработкой решений в области промышленной автоматизации, а более конкретно — разработкой информационных систем производства. Их назначение — предоставлять информацию для людей и других систем. Они предоставляют оперативные, самые последние данные, а также данные за прошлое. Данные поступают из многочисленных систем контроля (СК), количество параметров измеряется десятками тысяч.
Зачем использовать компрессию, почему бы не хранить все данные?
По роду деятельности я занимаюсь разработкой решений в области промышленной автоматизации, а более конкретно — разработкой информационных систем производства. Их назначение — предоставлять информацию для людей и других систем. Они предоставляют оперативные, самые последние данные, а также данные за прошлое. Данные поступают из многочисленных систем контроля (СК), количество параметров измеряется десятками тысяч.
Зачем использовать компрессию, почему бы не хранить все данные?
+62
Аудиты юзабилити в свободном доступе (Эпилог конкурса «Юзабельный Вебпроект»)
4 min
7.9KРанее в этом блоге. Около тысячи лет назад стартовал конкурс «Юзабельный вебпроект». С тех пор нам поставили 108 минусов за посты про конкурс (не считая этого), прислали 166 заявок на участие, нами было отобрано 15 из них, а в результате последнего противостояния выжило только 5. Мы оставили комментарии по юзабилити их сайтов всем желающим и вызвали ненависть некоторых веб-дизайнеров.
Следили хабровчане за ходом конкурса или нет, некоторым из них может быть интересно, чем все закончилось. Рапортуем. Подарочные книжки и полноценные аудиты юзабилити победители получили. И даже дали свои комментарии. Сначала мы хотели построить пост вокруг них, но потом решили, что они лучше будут смотреться на странице отзывов нашего сайта. Потом подумали, что можно опубликовать краткий юзабилити-линч, но какой смысл, если все это есть в аудитах. Поэтому с согласия победителей мы выкладываем их в открытый доступ.
аудит Kinobaza.tv (pdf, 3,11 Мб)
аудит Repka.ua (pdf, 1,23 Мб), приложение: майндмэп (pdf, 79,2 Кб) с рекомендуемой структурой меню
аудит PoPravilam.com (pdf, 653 Кб)
Чтобы вы не думали, что у этих сайтов одни только недостатки, мы вкратце расскажем о каждом из них, благо они этого заслуживают. Иначе они бы не победили в конкурсе, верно?
Следили хабровчане за ходом конкурса или нет, некоторым из них может быть интересно, чем все закончилось. Рапортуем. Подарочные книжки и полноценные аудиты юзабилити победители получили. И даже дали свои комментарии. Сначала мы хотели построить пост вокруг них, но потом решили, что они лучше будут смотреться на странице отзывов нашего сайта. Потом подумали, что можно опубликовать краткий юзабилити-линч, но какой смысл, если все это есть в аудитах. Поэтому с согласия победителей мы выкладываем их в открытый доступ.
аудит Kinobaza.tv (pdf, 3,11 Мб)
аудит Repka.ua (pdf, 1,23 Мб), приложение: майндмэп (pdf, 79,2 Кб) с рекомендуемой структурой меню
аудит PoPravilam.com (pdf, 653 Кб)
Чтобы вы не думали, что у этих сайтов одни только недостатки, мы вкратце расскажем о каждом из них, благо они этого заслуживают. Иначе они бы не победили в конкурсе, верно?
+41
Принципы работы покерного бота. ч.2
9 min
37KЭта статья является продолжением вот этого хабратопика. В этой части создания покерного бота мы поговорим об алгоритме принятия решений. В основном речь пойдет о стратегиях которые можно успешно применять и получать какой-то доход. Нужно понимать, что стандартные алгоритмы могут работать в плюс только на небольших лимитах, где встречается много игроков с очень неоптимальной игрой, которые готовы отдавать нам много денег. Для дальнейшего усовершенствования нужно вводить дополнительные элементы, которые принимают во внимание игроки более высоких лимитов используя статистику игроков.
+42
Тест простоты числа регулярным выражением
3 min
12KTranslation
Я видел множество проблем, связанных с регулярными выражениями, но в прошлую пятницу, спасибо Крису и Шону я нашел одну регулярку, которая позволяет проверить, является ли данное целое число простым. Оригинальные статьи предлагали следующее регулярное выражение для определения простоты числа:
+84
Как работают алгоритмы сортировки
1 min
22KИногда для понимания того, как работает та или иная вещь, лучше один раз увидеть, чем сто раз услышать.
Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами. Вы сможете посмотреть анимацию в зависимости от алгоритма, исходных данных.
Все это бегает и сортируется прямо на ваших глазах!
Работает на Google App Engine, видимо, поэтому и лежит от посетителей с «Хабра».
Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами. Вы сможете посмотреть анимацию в зависимости от алгоритма, исходных данных.
Все это бегает и сортируется прямо на ваших глазах!
Работает на Google App Engine, видимо, поэтому и лежит от посетителей с «Хабра».
+117
Высокодоступное отказоустойчивое web-приложение на Apache2 и MySQL
7 min
17KHA-Apache2 Web-Site and HA-MySQL
Цель: обеспечить высокую доступность web-приложения и минимальное время простоя при отказе одного как web-сервера, так и сервера баз данных.
Замечание! Схема предполагает, что web-приложение и база данных находится на разных серверах.
Для примера будем устанавливать wordpress.
Вариант решения:
Поскольку web-приложение должно быть постоянно доступно, то необходимо минимум два сервера с установленным приложением. Серверы будут отслеживать состояние друг друга, при этом в каждый момент времени ведущим будет только один из них. В случае отказа ведущего сервера его роль принимает второй. Когда первый сервер будет вновь доступен, к нему опять вернется роль ведущего.
+27
Делаем твёрдый переплёт для любимых книжек
6 min
523KНебольшое вступление
В последнее время на Хабре появилось несколько статей о том, как можно удобно читать техническую и художественную литературу. Разгорались горячие споры об электронных читалках и способах печати нужного материала.
В своей статье мне хотелось бы поподробнее остановиться на вопросах собственно печати (как сделать этот процесс быстрым и удобным) и изготовления книги из доступных материалов.
Большое вступление
Некоторое время назад мне захотелось прочитать цикл Дугласа Адамса «Автостопом по галактике». Я попробовал почитать несколько переводов и не один меня не устроил. Поэтому было принято решение — читать на английском! Найти эти книги в оригинале в наших книжных магазинах довольно сложно. А если и есть, то только первая часть цикла. В электронном виде найти несколько проще. Но я предпочитаю читать с бумаги (читалку на E-ink куплю обязательно — очень нравятся), поэтому книги я распечатываю.
Первые две книги выглядели так:
Я их прочитал с огромным удовольствием, но выглядели они не очень хорошо. И я решил, что «Life, the Universe, and Everything» нужно делать книжкой.
Процесс с картинками и комментариями под катом. Осторожно, действительно много картинок.
+326
Почему посетители не становятся покупателями или 17 шагов на пути к идеальному интернет-магазину
7 min
16K Очень часто бывает так, что владелец интернет-магазина выделяет огромные деньги на рекламу — размещает свои товары в торговых сетях, даёт объявления в системах контекстной рекламы, ставит баннеры на сайтах близких по тематике. Все это, безусловно, привлекает огромное количество посетителей, но проблема в том, что лишь ничтожно малая часть из них действительно совершает заказ. Именно этой проблеме и посвящена данная статья.
+87
Information
- Rating
- Does not participate
- Registered
- Activity