Search
Write a publication
Pull to refresh
22
0
Ананичев Дмитрий @Fr3nzy

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

Send message

Кинобаза год спустя: каким должен быть сайт о кино

Reading time4 min
Views2.9K

Год назад я рассказал здесь же, на Хабре, про первую версию Кинобазы.

Многие сайты за год успевают вспыхнуть и умереть до того, как потребуется продлевать домен. Но с Кинобазой всё получилось иначе. Несмотря на отсутствие какой-либо рекламы или продвижения сервиса, кроме постов на хабре, его аудитория непрерывно растёт и за год доросла до 20 000 человек в день. А значит мы делаем нужную вещь, которой люди с удовольствием пользуются и о которой рассказывают своим друзьям.

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

дочитать пост и посмотреть комментарии

Номер телефона

Reading time1 min
Views292K
Регулярное выражение для валидации номера телефона:

^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$

Ориентировано на российские мобильные + городские с кодом из 3 цифр (например, Москва).

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

Делаем SMS-сервис «на коленке»

Reading time6 min
Views9.1K
Привет!

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

Задача перед мини-стартапом стояла простая:
  • Создать прикольную штуку на «коленке» за минимум времени
  • Потратить на запуск меньше 1000 рублей (время не считается)
  • Собрать работающий монетизируемый сервис

UDP: в комментах ещё есть статистика во время хабраэффекта и феерический конец истории от агрегатора.
Читать дальше →

Моё путешествие в будущее

Reading time5 min
Views134K


Был тихий осенний вечер. Ничто не предвещало беды. Смеркалось. Я заканчивал плановый upgrade компьютера, в процессе которого по затерявшимся уже в истории причинам понадобилось сбросить BIOS. Дело не хитрое. Расположение батарейки и перемычки Reset на материнской плате известны – вперед! После включения и загрузки Windows 7 мне в ультимативном порядке было заявлено, что на дворе далекое будущее, а именно – 14201-ый год.



Приключения только начинались…
Читать дальше →

Представлен стандарт CSS Grid Alignment Level 3

Reading time4 min
Views4.1K
image

Два дня назад я представил на Хабре задачу по компоновке силами CSS. Задача привлекла небольшое внимание разработчиков и было представлено несколько разных решений, в том числе такие, которые практически точно решают задачу.

Пообещав представить оригинальное решение я немного слукавил, потому что это решение представляет собой использование нового стандарта W3C CSS Grid Alignment Level 3, который был представлен в начале ноября на мероприятии TPAC 2010.

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

Новогодняя рулетка — анонимный обмен подарками

Reading time1 min
Views1.4K
Наверно все мы немножко дети, и все мы любим получать новогодние подарки. Особенно приятно, наверно, когда подарок оказывается сюрпризом. Если вы любите дарить и получать подарки, хотите почувствовать новогоднее настроение, вы можете поучаствовать в новогодней игре под названием «Новогодняя рулетка».

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

Хоть это и немного рано, но с наступающим!

HTML5 File API: множественная загрузка файлов на сервер

Reading time7 min
Views87K
Когда передо мной в очередной раз встала задача об одновременной загрузке нескольких файлов на сервер (без перезагрузки страницы, само собой), я стал блуждать по интернетам в поисках довольно корявого jQuery-плагина, который позволяет имитировать ajax-загрузку файла (того самого плагина, который со скрытым фрэймом: от java- и flash- плагинов сразу было решено отказаться). В процессе поиска я вспомнил, что в грядущем стандарте html 5 возможности по работе с файлами должны быть существенно расширены, и часть этих возможностей доступна уже сейчас. В итоге было решено опробовать их в действии.

Рассматривать возможности File API будем на примере одновременной загрузки нескольких картинок на сервер. В конце статьи приводится готовое решение, оформленное в виде jQuery-плагина.
Читать дальше →

Динамические поддомены с использованием nginx+apache

Reading time3 min
Views29K
Этот топик — очередной топик про реализацию динамических поддоменов на сайте, коих много в интернете и даже есть пара топиков на хабре.

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

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

Например, у нас есть готовый сайт, на котором работают профили по такому url: www.example.com/users/username, и есть всякие дополнительные возможности (например www.example.com/users/username/contact и другие страницы, связанные с этим юзером).

И мы теперь хотим вынести все, что связано с юзером, на поддомен, например username.example.com, username.example.com/contact и т.д.)

Решения, которые были найдены в интернете, меня не удовлетворили по 2 причинам:
  • Не нашел решения как заставить ее работать, сохранив работоспособность домена www.example.com
  • Все найденные решения подходят только для перенаправления в папку и не работают если дальше должны работать какие то правила


На нашем сайте стоит nginx над апачем (как и на многих других), поэтому пришлось изобретать велосипед самому, используя эту связку (nginx+ apache, благо сейчас почти на всех крупных сайтах стоит проксирующий nginx над апачем)

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

Dice Wars на App Engine + Twisted

Reading time4 min
Views1.6K
С августа в свое свободное время я занимаюсь разработкой занятной risk-подобной игрушки, в мире известной под названием Dice Wars. Гениальный японский гейм-дизайнер Таро Ито придумал замечательные правила этой игры и создал ее на флеше (однопользовательскую), и она породил множество вариаций на эту тему, до сих пор плохо известных в России.

В этой статье я хотел бы проанализировать мой первый fail с risk-подобной игрой, о которой я писал в марте, рассказать, почему я отказался от идеи использовать App Engine везде и вся, показать связку из App Engine + Twisted к которой я пришел и которая, как мне кажется, довольно полезна для приложений с постоянным соединением. Кроме того, хотелось бы рассказать о своем опыте с Actionscript 3, что-то вроде взгляда back end разработчика на эту чуждую для меня технологию, а также поискать здесь на хабре компаньонов и единомышленников.
Читать дальше →

Форки движка MySQL: MariaDB, Percona. who is who?

Reading time3 min
Views89K
MySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
Читать дальше →

Генератор миниатюрок из Nginx-а

Reading time3 min
Views27K
Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.
Что ж приступим...

Google Maps Javascript API V3 и управление маркерами

Reading time3 min
Views29K
Дело было глубокой осенью. Мне поручили разработку раздела, основной задачей которого является указание местоположения объектов фильтрации и поиска на карте. Что стало заметно сразу же — даже при отображении 10 объектов на карте, можно уменьшить зум до такого, при котором они просто сливаются. Если их будет 100 — появятся жутковатые наложения и тени. Не комильфо!

Поиск решения


Решение очевидное, маркеры нужно группировать. В процессе поиска наткнулся на хабростатью, в которой рассмотрены различные способы группировки большого количества маркеров на карте. Нас вполне устраивали «костыли 1-2», то есть группировка маркеров на клиентской стороне, однако… если бы они подошли, не писал бы я сейчас статью ;)

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

Слушаем клиентов. Развитие сервиса “Рубашка на заказ” (продолжение)

Reading time4 min
Views1K
image

Год назад я писал про сервис “Рубашка на заказ”. На его примере я наблюдаю за процессом развития стартапа в сфере услуг. Кейс очень интересный: “куда двигаться, какие проблемы возникают, какие возможности внедрять, где черпать вдохновение”. Информацию я получаю прямо от руководства компании, так как эти люди являются давними клиентами нашей студии.
Итак, начну с изменений.
Читать дальше →

Еще несколько полезных плагинов

Reading time2 min
Views1.8K
За последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
Читать дальше →

Бог — бестолковый гейм-дизайнер

Reading time5 min
Views6.1K
Вы наверное слышали, что существуют взрослые люди, которые верят в то, что вся вселенная, вся материя-пространство, наша планета Земля и все её обитатели созданы неким сверхъестественным сверхразумным существом по прозвищу Бог? Лично я не представляю как можно всерьёз относиться к таким идеям. Но общий смысл библейского сюжета о том, что всезнающий Бог создал наш мир и нас самих, а теперь пристально наблюдает за происходящим, натолкнул меня на мысль что это классический gamedev. И тут я решил буквально на секундочку принять идею «божественного творения» и посмотреть — так ли хорошо он справился со своей задачей, как утверждают некоторые?
Читать дальше →

Обзор нескольких новых плагинов jQuery

Reading time4 min
Views6.4K
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
Читать дальше →

Сообщаем о ремонтных работах на сервере

Reading time1 min
Views4.6K
Обновление Хабра, проходившее вчерашним вечером, побудило написать краткую заметку. Во время тех.работ Хабр вывешивает одностраничную заглушку, текст на которой гласит о происходящих работах. Заглушка отдается по всем запрошенным адресам. Никакого редиректа: по какому адресу статьи не зайди — везде одинаковый текст о ремонте. При этом ответ сервера сопровождается статусом «HTTP/1.1 200 OK». Так делает большинство известных мне сайтов. И если человеку, по большому счету, все равно, то поисковик, проводящий индексацию сайта в этот момент, видит, что по адресу со статьей обновилось содержание — надо обновить индекс.

Это всё модальные окошки, которые придумали программисты:
[произошла какая-то фигня] — [OK] — Да это же ни фига не ОК!
@mad_escape

Решение придумано до нас и давно стандартизировано

Правильный дизайн ускоряет заполнение форм

Reading time1 min
Views4.1K
Формы на сайте часто несут важную миссию вроде сбора контактов или реквизитов для платежа — что может быть ценнее этих данных?

Дизайн напрямую влияет на юзабилити и желание пользователя передать данные своей кредитки в ваши мохнатые руки заполнить ту или иную форму.

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



Казалось бы, довольно очевидно, да? Но я не задумывался об этом ранее.

По наводке сайта UXMovement.

Правила эффективного использования jQuery

Reading time5 min
Views43K
Здесь приведен ряд очень простых правил, следуя которым, ваше сотрудничество с jQuery не будет омрачено скрежетом напрягшегося браузера. Конечно, не так часто случается, что скорость работы javascript’а оказывается критичной, однако такое все же может произойти, и произойти в самый неподходящий момент. Поэтому, лучше держать эти правила в голове и не пренебрегать ими.
Читать дальше →

Уязвимость связки PHP+nginx с кривым конфигом

Reading time1 min
Views61K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

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

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity