Mr.KTO blog

Шаблонизировать за 6 секунд (и 6 строк)

29 ноября 2007

По мотивам: LARIN.in – Прощай Smarty или простой шаблонизатор.

Я тоже не люблю Smarty. Не только потому, что это – не мой php-класс. А потому, что разработчики Smarty действовали по принципу "идеальное решение для всех". Эта излишность просто мозолит глаз: здесь и разные форматы имён переменных, и модификаторы (д.б. в css или в php-коде), временные переменные в циклах, слишком много слов (имена аттрибутов функций, начало/конец цикла). При том, что даже кэшированный в php код тормозит. И не говоря о том, что сам класс огромен и вы зависите от выпусков обновлений.

Я же следую (раньше – неосознанно) принципам экстремельного программирования. То есть, реализовывать возможности программы только по текущим потребностям. Не более. (Исключение – "правило пяти минут": если что-то можно сделать меньше, чем за 5 мин. – это надо сделать немедленно, т.к. на возврат к делу (чтобы загрузить программу в голову) уйдёт очень много времени.)

Спорить о том, зачем нужен шаблонизатор можно долго. Я считаю, что в каждом конкретном проекте нужно использовать минимальный шаблонизатор, выполняющий наилучшим образом необходимые задачи. То есть, если, например, требуется сократить размер шаблонных конструкций (по сравнению с php-шаблонами), или сделать так, чтобы шаблон можно было удобно редактировать в Dreamweaver – нужно написать такой шаблонизатор.

У меня уже есть один. Но для текущего проекта я решил придумать новый. Всё гениальное просто:

класс шаблонизатора:

class View {

    function parse_page($source_file) //public
    {
        include($source_file);
    }
}
пример шаблона:

<html>
<head><title><?=$this->title?></title></head>
<body>
  <table>
<?php foreach($this->companies as $k => $v) { ?>
    <tr><td><?=$k?></td><td><?=$v?></td></tr>
<?php } ?>
  </table>
</body>
</html>
использование:

require_once("inc/View.php");

$view = new View;

$view->title = "Page title here";
$view->companies = array("Apple" => "iPod", "Microsoft" => "Windows", "Google" => "AdSense");

$view->parse_page("skin/tskin.php");

Секретные материалы от самих стартаперов

25 ноября 2007

Источник: LiveIdea – Круглый стол web 2.0

«...

Как сформулировать цель/стратегический план и "продукт" стартапа?

Максим Немченко (инвестор и владелец компании SM&Partners):

  Стратегический план любого проекта, не важно, Интернет или нет, складывается из набора целей в нескольких периодах и миссии. Говоря простым языком, мы должны составить карту с маршрутом движения. Должны определить, в какой конечный пункт мы хотим попасть (долгосрочные цели), через какие пункты мы туда пойдем (среднесрочные и краткосрочные цели) и под каким флагом (миссия). Вот и стратегический план.

  Формулировка целей кроет в себе подвох. Плохо поставленная цель может завести в тупик. А значит надо подходить к этому очень аккуратно. На мой взгляд, цель должна быть, прежде всего, измеряемой и логически ограниченной.
  Например. Плохой вариант цели. Нам нужно за год сделать актив из недвижимости, который бы приносил рентный доход.
  Хороший вариант формулировки цели. Нам нужно в Киеве, в районе, привлекательность которого для арендаторов в ближайшие 5 лет будет расти, приобрести квартиру из вторичного жилищного фонда, ежемесячная прибыль от сдачи которой будет составлять 1500$. Квартира должна перейти в собственность через 15 лет. По такой цели можно определить сразу кучу параметров, в том числе и для плана кредитования.

  Стоит, наверное, сказать, особенно в разрезе очень быстро меняющихся веб‐проектов, что план – это только набросок дальнейшего движения. Он может поменяться десять раз по ходу развития проекта. Но без него нельзя, поскольку его наличие гарантирует хотя бы до какой‐то степени ясное видение целей и задач.
Чтобы описать продукт, опишите, как вы видите свой веб‐проект на момент окончания среднесрочного периода.

Евгений Игумнов (создатель сервиса для создания сайтов MyLivePage):

  Сервис для пользователя должен быть наркотиком, и пользователь должен в сервисе проводить 100% свободного времени. Средства для достижения этого: удобство использования и легкость общения среди членов.

Игорь Санин (автор проекта Создатели):

  Цель в стартапе у каждого своя. Кто-то занимается проектами с расчетом на их последующую продажу, кто-то связывает с ними своё будущее и хочет вырастить собственный крупный бизнес. Признаться, второй вариант столь же интересен, сколько редок. Примером тому может служить тот же Google, основатели которого в переговорах с инвесторами изначально имели категорическую позицию относительно сохранения за собой контроля над компанией. Стартапы с ориентацией на самостоятельность больше рискуют, но в итоге имеют шансы сорвать больший куш.

Монетизация интернет-проектов

Макс Крайнов:

  Я 100% верю в другой принцип, что "надо находиться в бизнесе, позволяющем твоим пользователям заработать ещё больше денег". Это может быть как онлайн-, так и оффлайн-бизнес. Пример: много лет аффилятные сети стригли много денег с компаний, обладающих серьёзным трафиком, но в некоторых областях мы смогли предложить этим компаниям ещё больше денег с их трафика - и вот к нам уже стоит очередь клиентов.

  Я с опаской отношусь к проектам, которые верят в великую денежную силу контекстной рекламы. Мне несколько раз присылали бизнес-планы, описывающие сайты, посвящённые товарам, и где посетителям предоставляется возможность обменяться мнениями и советами по поводу этих товаров. Монетизация? Реклама, конечно. В самой рекламе нет ничего плохого, но бизнес-модели типа high volume/low margin (большие объёмы, маленькая наценка) меня лично не привлекают.

  Из моего опыта, онлайн-проекты с серьёзным целевым трафиком или с коммьюнити с хотя бы 20% "живыми" пользователями являются очень сильным инструментом для повышения лояльности имеющейся пользовательской базы потенциального покупателя. Даже нишевые купленные онлайн-проекты (не сильно оторванные по тематике от "матки") могут создать синергетический эффект для покупателя. Но это только выжившие проекты - уверен, что к той поре на обочине останется не один аналогичный нишевой и не очень проект.

[Dave Wiener: «Advertising will get more and more targeted until it disappears, because perfectly targeted advertising is just information. And that's good!»]

Защита автора идеи и стартапа на этапе начинания

Артëм Кашехлебов (из стартап-команды Olevarty (проекты Kanban.Ru, RSS2Email.Ru, Seku.Ru)):

Без горящих глаз и команды реализовать идею венчурного стартапа практически невозможно.

Что вы действительно можете утаить, так это маркетинговые идеи. Вот уж что представляет ценность в современном мире, так это нетривиальные идеи по продвижению и позиционированию продукта (услуги).»

Как написать контроллер на PHP

23 ноября 2007

Можно, конечно, прочитать статью о контроллере в Symfony.

Но, думаю что гораздо понятнее будет следующий пример. Он показывает различие обычного подхода и подхода MVC с ООП.

Стандарный:

file1.php

if ($_GET['action'] == "act1") {

    echo "do act1";

} elseif ($_GET['action'] == "act2") {

    echo "do act2 with param1=".$_GET['param1'];

} else {

    echo "e.g. html form here";

}

Как ООП-контроллер:

file2.php

class file2_Controller {

    function file2_Controller()
    {
        switch ($_GET['action']) {
            case "act1":
                return $this->act1();
            case "act2":
                return $this->act2($_GET['param1']);
            default:
                return $this->echo_form();
        }
    }
    function act1()
    {
        echo "do act1";
    }
    function act2($param1)
    {
        echo "do act2 with param1=".$param1;
    }
    function echo_form()
    {
        echo "e.g. html form here";
    }

} new file2_Controller;

В последней строчке после фигурной скобки закрытия класса мы сразу создаём экземпляр этого класса, при этом запуская конструктор (function file2_Controller()), но не присваивая объект переменной.

Как видно, совсем не обязательно пихать всё в один файл index.php с RewriteRule .* index.php без особой на то необходимости.

Изучая стартапы

18 ноября 2007

http://in-da-start-up.blogspot.com/2007/11/userplainhotornotgreenfield.html

Просто супер-статья! 

«Изучая стартапы пришедшие к успеху (Userplain, HotorNot, Greenfield Online, Facebook, XFire, LowerMyBills, Homegain, youTube, last.fm, delicious, digg...) я делаю для себя один фундаментальный вывод:

— для успеха стартапа необходимо одно – всеобщую известность.

те, что добились такого успеха сделали это путем:

— вирусный маркетинг

— миллионнные инвестиции в радио и телерекламу, директ мейл и тд.

Все. К разговорам про технологическую сингулярность. так вот
разрабатывать дорогие, абсолютно новые технологии в стартапах (с высокой "материальной" составной) — рискованно рискованно и еще раз рискованно, пожалуй добавлю еще раз – неоправданно рискованно! (кто думает не так, встретимся в комментариях)

В лучшем случае будет выход на уровне 100-120 миллионов, в то время когда у проектов на базе пользователей – леверидж на порядки больше и самое главное – вероятнее! Монетизировать "глаза" проще.

Второе: стартап не для пользователей имеет огромные технологические риски, поскольку скопировать это очень просто. А патенты обойти. Тайвань успешно живет не имея законов об авторском праве. Стартап аудиторный – имеет несравненное преимущество получения быстрой обратной связи. Это очень и очень ценно, и очень и очень снижает риски продолжать разрабатывать технологию, которая может не удасться, при этом теряя деньги и самый ценный и невосполнимый ресурс – время.

стартапы которые делают инфраструктурный сдвиг – должны питаться огромными венчурным и интеллектуальным капиталом.

Теперь взвесим умом, что может отдельный коллектив:

а) создать новую супертехнологию (например передачи данных (безумие!)) и организовать выход в 20-30 милл. долл.

б) создать уникальный пользовательский ресурс вроде дигга (>100 миллионов , верхняя планка в миллиарды, ютюб)

в) создавать софт и т.д. как и тысячи других (неизвестная сумма при выходе)

Если ответ а) то приготовься провести десяток лет в лаборатории, потому как просто так никто не отдаст наработки.

Если ответ б) то я скажу "are you welcome!"

Если ответ в) то я скажу "здорово, но пусть это будет запасная стратегия".

Стратегия успешного стартапа сейчас – основывается на той инфраструктуре которая уже создана.

Это надо понять, произошел shifting с технологии на credibility у пользователей.

Вывод 2: нет корреляций между затраченными интеллектуальными ресурсами и оценкой на выходе. (sic!)

Этот факт подтверждают все кто узнал о выходе в >1,68 миллиарда в youTube, неоспоримо.

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

Пол Грэм: Будущее веб-стартапов

18 ноября 2007

http://habrahabr.ru/blog/startup/30099.html

«Прямо сейчас происходит нечто невероятное. Новые компании (стартапы) проходят те же стадии трансформации, что и технологии, когда удешевляются «...»

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

1. Огромное количество стартапов

Вот мое первое предсказание касательно будущего стартапов: их будет очень много. Когда запуск компании влетал в копеечку, вам нужно было получить на это согласие инвесторов. Сейчас же это вопрос лишь смелости. «...»

Запустить стартап трудно, но работать с 9 утра до 5 вечера - тоже не сахар, а иногда и вовсе приходится тяжко. Запуская компанию, у вас появляется много забот, зато нет ощущения, что жизнь пролетает мимо вас, как это бывает при работе в больших компаниях. К тому же, запуская стартап, вы можете заработать гораздо больше денег.

Такие компании развиваются со скоростью звука, так что их количество может достигнуть запредельных высот.

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

4. Возможны рискованные стратегии

«...» Если запустить стартап станет проще, то конфликт может быть исчерпан, поскольку молодые основатели легче идут на риск, и поэтому за свою карьеру могут запустить больше стартапов. Когда основатели способны запустить большое количество стартапов, то они начинают смотреть на обстоятельства в том же оптимистичном свете, что и инвесторы. Поскольку используются рискованные стратегии, соответственно, и доход может быть очень большим.

5. Молодые дотошные основатели

«...» сейчас запустить компанию могут более молодые и технически грамотные основатели, чем до этого.

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

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

6. «...» Сейчас стартап могут запустить двое 22-летних парней, и он сможет развиться гораздо быстрее, чем аналогичный со штатом в 10 человек, у половины которых есть дети «...»

9. Большая конкуренция

Если вам легко запустить стартап, то вашим конкурентам сделать то же самое так же просто. Этот факт ни в коей мере не умаляет преимущества удешевления запусков. Вы не играете в игру с "нулевой суммой". Количество стартапов, которые могут стать успешными, не является фиксированным.

На самом деле, я не думаю, что существует некий лимит на количество успешных стартапов. Успешными считаются те, что приносят доход, удовлетворяя при этом желания людей. А человеческие желания неисчерпаемы, по крайней мере, в ближайшем будущем.

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

10. «...» Но вообще-то грядет двойное увеличение скоростей. Люди не только не будут долго ждать, чтобы развить свои новые идеи, а стартапы разовьют эти идеи куда быстрее, чем большие компании «...»

Страница 4 из 10« В начало«23456»В конец »