Интересная ссылка, я до этого сам похожие велосипеды делал, а оказывается, уже есть готовые варианты.
Кстати, если в приложении есть модели данных, теоретически схему можно генерировать автоматически из описания моделей (ну или модели из схемы, как вариант).
Ссылка должна жить не 60 минут, а трое суток, по истечении не вываливается никаких ошибок HTTP, а автоматически генерируется новая. Если клиент захочет слить скачанный материал, он сделает это в любом случае, а вот юзать систему, в которой надо «скачать за 60 минут» — а вдруг у меня интернет сломался? — неудобно.
Уникальная ссылка генерируется не для защиты от повторного скачивания, а для невозможности ее выкладывания на форумах и для учета скачиваний.
Если я отформатировал жесткий диск, я всегда должен иметь возможность выкачать книгу заново. Посмотрите, как например это делает Эппл в айтюнс. Повернитесь к людям лицом уже.
Если боитесь, что будут тырить книги и продавать бесплатно, делайте на них отметки с персональными данными покупателя.
> С каких пор питон и редис из каментария выше «подные и непроверенные» технологии?
Имелось в виду «модные». На Ява/Си++ просто больше написано, в том числе сложных, масштабных, критичных к быстродействию приложений, а не простых сайтиков на джанго/РоР
Почему бешеные деньги? Продукт который вы предлагаете сделать, узкоцелевой, нужный фактически только одной организации. Есть риск, что его вообще не купят, как инвестиции возвращать? Не выгоднее ли приложения для обработки фото на айфоне писать?
Попробуйте для начала сформулировать краткое описание продукта, который вы предлагаетет сделать, и прикинуть, например, какую выгоду он даст. Может, стоимость человеко-часов людей. которые в екселе цифры складывают, меньше, чем стоимость работы большой IT-компании.
Да, хочу еще сказать про особенности ООП в PHP. многие программисты, вдохновляясь языками типа Java, начинают делать каждую сущность отдельным классом, а то и деревом классов. Банальный токенайзер/лексер для какого-нибудь шаблонизатора делают так, что на каждый токен делают по классу (правильно: надо делать все одним монолитным классом и на регулярках). В ORM делают кучу классов только для того, чтобы сформировать запрос на выборку (Criteria), делая каждую операцию отдельным классом. У формы каждое поле делают отдельным классом.
Слышал, особо ненормальные пишут порты LINQ на PHP. Лишь бы array_map/array_filter не использовать.
Это, конечно, красивый подход, и он хорошо смотрелся бы в каком-нибудь Си++, в котором компилятор на раз перемалывает любое дерево классов в машинный код, но в PHP это не работает. Загрузка классов в PHP медленная, вызов лишних методов — медленный, в итоге получаются монстры типа Doctrine или Zend, с кучей мертвого кода и адскими тормозами. При этом еще и теряются все преимущества динамического языка и скорость разработки.
Поэтому все эти товарищи, которые для такой простой задачи предлагают привлекать какие-то итераторы, на мой взгляд, занимаются ерундой. В PHP есть foreach. Хотите писать функциональщину — идите используйте Haskell или LINQ в дотнете, а к нам с этой ересью лезть не надо.
Из вашего ответа не очень понятно, есть там у вас tmpfs или нет. Если есть, попробуйте сопоставить изменение объема занятого места в tmpfs и изменение свободной памяти, может ответ и найдется.
Наследование через prototype на самом деле, весьма неудобно, и полно костылей. Например, если у вас в прототипе класса есть массив или объект, то модифицируя его в потомке, вы меняете его и во всех экземплярах родителя. Подобные подвохи делают саму идею прототипного наследования неудобной и полной костылей. Новички постоянно (а опытные программисты — иногда) будут ломать код из-за таких особенностей.
PayPal — не госконтора, тем более что какие-то америкашки, разве они могут посадить за подделку документов? Тем более, подделку не документа, а всего лишь электронной копии.
В некоторых случаях переделывать сложно или почти невозможно. Например, у вас есть 20 разработчиков и они постоянно пишут новый код. И они пишут его уже 5 лет. Во-первых, столько кода не переделать, во-вторых, пока вы будете переделывать, они еще столько же напишут.
200 к хитов в сутки ~ 2.5 rps (пусть даже 10 в пике) — это очень мало даже для PHP. А, например, правильно настроенная Java вообще тысячи rps может выжать.
Пароль к ssh спрашивается в консоли. Пароль к MySQL тоже в консоли, правда (тестировал под уиндоуз) при этом печатается в открытом виде — видимо команды отключения/включения эхо режима где-то теряются по пути.
Кстати, если в приложении есть модели данных, теоретически схему можно генерировать автоматически из описания моделей (ну или модели из схемы, как вариант).