Как стать автором
Обновить
Антон П @roodzread⁠-⁠only

Веб-разработчик: PHP, Laravel, Vue.js

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

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся. Часть 2: архитектура

Время на прочтение13 мин
Количество просмотров7K
Вслед за первой частью, призванной в первую очередь показать, что «не так страшен чёрт, как его малюют»

Статья об архитектуре части проекта, которая занимается он-лайн платежами. Намеренно не хотелось бы сейчас подробно описывать API конкретного биллинга или процедуру регистрации в нём. Тонкости конкретных биллингов нужно обсуждать отдельно, иначе тему просто не раскрыть. Цель статьи: обсудить вариант архитектуры, позволяющий нанизывать новые виды биллингов и типы платежей, с наименьшей головной болью.
Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии33

Загрузка браузером нескольких файлов

Время на прочтение5 мин
Количество просмотров30K
Если нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла.

Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.

Достаточно написать что-то вроде
Copy Source | Copy HTML
  1. <form enctype="multipart/form-data" method="post">
  2.    <input type="file" min="1" max="9999" name="file[]" multiple="true" />
  3.    <input type="submit" name="submit" />
  4. </form>
PHP оказался готов к такой конструкции (именно для него в параметре «name» стоят квадратные скобки), он просто разложит загружаемые файлы по элементам массива $_FILES, если только мы не используем «Оперу».

К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.

Я попробовал исправить эту ситуацию.
Читать дальше →
Всего голосов 119: ↑107 и ↓12+95
Комментарии67

О том, как сделать великую компанию

Время на прочтение5 мин
Количество просмотров4.7K
Недавно прочитал очередной бестселлер по бизнесу: «От хорошего к великому: почему одни компании совершают прорыв, а другие нет…» Джима Коллинза. Авторы книги провели большое исследование и попытались вывести общие черты успешных (великих) компаний, которые многого добились.

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

Кстати, многие принципы можно применять и в личном карьерном росте.
Читать дальше →
Всего голосов 73: ↑49 и ↓24+25
Комментарии118

Что делать с отрицательными отзывами?

Время на прочтение4 мин
Количество просмотров1.2K
Когда различные торговые компании и маркетологи говорят о социальных сетях, у них часто возникает беспокойство: а как насчет отрицательных отзывов? Этот вопрос я увидела в комментариях к моим предыдущим постам, и сейчас хотела бы его обсудить.

Согласно исследованиям Shop.org и MarketingSherpa, менее 26% розничных торговых компаний имеют рейтинги и отзывы потребителей; при этом 96% компаний, имеющих отзывы, считают их эффективной либо высокоэффективной функцией. Так что же мешает другим компаниям использовать эту функцию?
Читать дальше →
Всего голосов 79: ↑71 и ↓8+63
Комментарии42

Физика на Flash. Box2D Engine

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

Быстрый, удобный и мощный физический движок с открытым исходным кодом. Под катом — ссылки, небольшой туториал и пример использования.
Читать дальше →
Всего голосов 81: ↑75 и ↓6+69
Комментарии40

Как делать все

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


Предисловие.


За то время, которое у меня есть, я хочу сделать как можно больше. Более того, я хочу заниматься всем одновременно. У меня есть способ. Я вам о нем расскажу.
Как я это делаю...
Всего голосов 135: ↑93 и ↓42+51
Комментарии64

Все что нужно знать о секционировании (Часть 2)

Время на прочтение6 мин
Количество просмотров13K
Часть 1

Продолжаем разговор о секционировании. В прошлый раз мы рассмотрели простую задачу о таблице, разбитой на секции для каждого дня — так называемый range partitioning. Разбив таблицу на секции мы столкнулись с новой проблемой — поддержка секционированной таблицы. Мы должны вовремя создавать новую секцию, архивировать устаревшие, изменять соответствующим образом триггер, управляющий вставкой новых данных.
В прошлый раз я обещал простое решение
Всего голосов 26: ↑24 и ↓2+22
Комментарии8

Десять смертных грехов в оценке трудоёмкости разработки программного обеспечения

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

Введение


В этом топике я хочу представить вам, дорогие читатели, пересказ вебинара от человека, чьё имя не нуждается в представлении. Для того, чтобы изложить часовой вебинар в виде небольшого топика, мне пришлось значительно ужать комментарии автора, поэтому я сознательно не помечаю топик как «перевод». В этот раз Стив МакКоннелл решил поделиться с нами своим опытом в виде коротких тезисов, в которых он отражает самые страшные ошибки при оценке трудоёмкости разработки программного обеспечения. В 1998 году читатели журнала Software Development назвали Стива одним из самых влиятельных людей в индустрии разработки программного обеспечения на равне с Биллом Гейтсом и Линусом Торвальдсом. Стив — автор книги «Software Estimation. Demystifying The Black Art» — одной из самых популярных книг в области оценки трудоёмкости разработки ПО. Надо признаться, что вебинар был проведён относительно давно (июнь 2009 года), но информация, представленная там, совсем не устарела. Сам топик будет построен следующим образом. Заголовки будут достаточно точно переведены из презентации, которую показывал Стив, а в остальном я постараюсь отразить только основные мысли, чтобы не перегружать топик. Если кто-то посчитает, что ту или иную мысль я излагаю неправильно — милости прошу в комментарии, можно будет меня поправить.

Итак, поехали...
Всего голосов 116: ↑106 и ↓10+96
Комментарии27

Hello World! как ему следует быть на C в Linux

Время на прочтение3 мин
Количество просмотров52K
Очень многие начинающие программисты думают, что знают, как написать Hello World. Естественно, с этого примера ведь и начинается большинство учебников.
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
#include <stdio.h>
void main()
{
    printf("Hello world\n");
}

Читать дальше
Всего голосов 226: ↑161 и ↓65+96
Комментарии134

Интернет-магазин оружия своими руками

Время на прочтение3 мин
Количество просмотров2.2K
Читал несколько постов в рубрике «Мой бизнес», возможно и мой опыт будет кому-то интересен.

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

Итак, обо всем по порядку.
Всего голосов 81: ↑67 и ↓14+53
Комментарии90

Архитектура клиентского приложения на ExtJS. Часть 1

Время на прочтение6 мин
Количество просмотров6K
ExtJS
Самое сложное в любой работе — это начать её. Итак, с чего же начать наше огромное клиентское приложение? В этой части я расскажу с чего начать и затрону три темы: Как организовать код, Что такое фасад, как его построить, что такое компоненты (и, конечно, как их начать писать).
Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии28

Расстановка дефисов, минусов, тире и кавычек

Время на прочтение3 мин
Количество просмотров74K
Вопросы правильной расстановки дефисов, длинного и короткого тире, знака минуса, кавычек-елочек и кавычек-лапок уже неоднократно поднимались в интернете и на Хабре в частности (см. ссылки ниже). Однако по-прежнему, студенты и аспиранты в своих курсовых и дипломных, диссертациях и авторефератах не уделяют достаточного внимания типографике.

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

Со временем возможно появятся похожие таблички с правилами расстановки пробелов, знаков препинания и по оформлению текста в целом.

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

Архитектура системы приема электронных платежей на сайте

Время на прочтение6 мин
Количество просмотров13K
Для многих проектов наступает момент, когда хочется, чтобы сайт приносил прибыль.
И не только в виде оплаты рекламных баннеров или контекстной рекламы, но и в виде денежек от своих посетителей.

Неважно, что им предложить — крутой спецэффект на аватар, футболку с символикой проекта или доступ к приватным сообщениям первой красавицы сайта. Важно, как получить за это деньги. Причем желательно сразу, пока пользователь не передумал потратить свои кровные.

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

Читать дальше →
Всего голосов 86: ↑72 и ↓14+58
Комментарии76

Создаём страницы-«заглушки» для своих сайтов

Время на прочтение7 мин
Количество просмотров107K
Страницы-«заглушки»Если вы купили домен, а сайт ещё не запустили, то решить, что делать с ним — это довольно непростая задачка. Оставить начальную страницу вашего регистратора или стандартную страницу хостинга? Оба варианта выглядят, по меньшей мере, непрофессионально. Особенно, если вы собираетесь попиарить свой новый проект, рассказать о нём. В то же время, вы не хотите тратить слишком много времени для создания временной страницы, т.к. вам нужно работать над самим проектом.

Лучший выход из ситуации — создать простую страницу-«заглушку», которая будет рассказывать посетителям, что здесь, в конечном счёте, появится. Хорошая страница-«заглушка» может быть двух вариантов: информационная страничка, которая просто расскажет, что здесь будет после запуска; или страница, которая предлагает посетителям подписаться на уведомления или оставить запрос на бета (или альфа) тестирование. Ниже вы увидите несколько отличных примеров обоих типов, следуя которым, вы сможете создать свою такую страницу-«заглушку». Разумеется, среди них вы не увидите обычных страниц «В разработке» (с надоевшим дизайном), которых целая куча в сети.
А теперь подробнее и с примерами...
Всего голосов 113: ↑98 и ↓15+83
Комментарии68

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся

Время на прочтение2 мин
Количество просмотров4.1K
Я хочу поделиться простым взглядом на сложные вещи.
Отлично помню своё первое столкновение с on-line платежами. Тогда меня такая задача морально напрягала: мало того что на мне ответственность за чьи-то деньги, так я ещё и не понимаю даже обычной банковской системы, что уж говорить о виртуальной.
Хорошо, если бы мне тогда кто то сказал...
Всего голосов 82: ↑53 и ↓29+24
Комментарии66

Browser persistence

Время на прочтение2 мин
Количество просмотров1.7K
Browser persistence — техника, позволяющая хранить в браузере довольно большие объемы данных, которые в отличие от cookie не отсылаются на сервер при каждом запросе.

Все уже написано до меня, но на хабре никаких более-менее подробных упоминаний не нашел, поэтому написал краткий обзор — как это работает и собрал ссылки для более подробного изучения.
Читать дальше →
Всего голосов 63: ↑53 и ↓10+43
Комментарии20

Отдаём статику nginx'ом

Время на прочтение2 мин
Количество просмотров4.8K
Начиная с версии 0.8.11 в nginx появилась новая возможность для раздачи статики — использование AIO (Asyncronous Input-Output — неблокирующий ввод-вывод) для Linux и FreeBSD.

Чем это событие знаменательно? До этого момента nginx использовал неблокирующий режим только при работе с сетью — любая работа с файлами блокировала рабочий процесс. К чему это приводило? Если у вас есть много разного контента, который не весь находится в кэше ОС (фотохостинг, etc) — то рано или поздно все 50, 150, 200 процессов будут ждать дисковые операции и не смогут обслужить нового клиента — даже если нужный ему контент можно отдать из файлового кэша или запросить с бэкенда.

Как с этим боролись раньше?
Всего голосов 42: ↑38 и ↓4+34
Комментарии18

IT аутсорсинг: по ту сторону баррикад

Время на прочтение12 мин
Количество просмотров34K
image
Топик навеян рассуждениями xldsakamrhahn Системный администратор или аутсорсинг? о качестве обслуживания аутсорсинговыми ИТ компаниями. Этой статьей хотелось бы показать насколько IT аутсорсинг для малых и средних предприятий является тяжелым и сложномасштабируемым бизнесом. На сегодняшний день технологии стали намного более сложными и капризными чем раньше, и с каждым годом ситуация усложняется еще больше, старые технологии заменяются все более новыми, знания и опыт специалиста без их постоянного обновления и слежения за тенденциями быстро теряют актуальность и становятся ненужными. Это вам не телевизоры чинить, в IT сфере устройства на порядки более совершенные и сложные.

Затраты у большинства клиентов на IT обслуживание приравниваются к затратам, например, за коммунальные услуги, т.е. чем дешевле обойдется — тем лучше, тем больше прибыль и не секрет, что малый бизнес как никакой другой считает каждую копейку. Однако не стоит ставить цену услуг основным критерием для принятия решений о сотрудничестве с аутсорсинговой компанией и прочтя этот опус до конца вы поймете почему. Также в конце статьи ИТ компании небольшого размера (до 10 человек) ждет вкусный бонус.
заглянуть по ту сторону баррикад
Всего голосов 77: ↑61 и ↓16+45
Комментарии69

Методичка по работе с клиентами. Для начинающих менеджеров веб-студий. Часть 2. ТЗ и смета

Время на прочтение4 мин
Количество просмотров12K
(2009 год, второе письмо старшего менеджера веб-студии — младшему)
Итак, первоначальные переговоры c клиентом проведены. Смотрим первую часть методички здесь http://habrahabr.ru/blogs/studiobusiness/45543/.
Теперь надо сориентировать клиента по цене. Если он с ней принципиально согласен — переходим к обсуждению Технического задания (ТЗ).
Делаем смету
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии41

Информация

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