Pull to refresh
0
0
depporter @depporter

User

Send message

iПрезентация (The Presentation). Как Джобс готовил и проводил презентации

Reading time11 min
Views42K
Стив Джобс был лучшим в мире оратором и делал самые лучшие презентации продуктов, заставляя зрителей «сидеть на краешках стульев». Фокус в том, что за каждой из таких презентаций скрывается определённая подготовка и определённые приёмы. Кармин Галло (Karmine Gallo) изучил публичные выступления Стива Джобса и его подготовку к этим выступлениям. В результате мы можем прочесть книгу, которая поможет вам готовить хорошие презентации.



Зачем эта статья? Да, эта статья не отменяет необходимости чтения первоисточника. Но лично мне она нужна как конспект: когда я в очередной раз буду готовиться к публичному выступлению, я вернусь к этой статье и быстро вспомню то, о чём написано в книге.
Итак, приступим.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments3

25 «логичных» советов создателям стартапов от лучших инвесторов. Часть первая

Reading time12 min
Views19K
В отличие от типичной болтовни про стартаперов и инвесторов, эти советы требуют делать выбор. И зачастую этот выбор реально ставит в тупик.

Несколько лет занимаясь разработкой стартапов, я успел пообщаться со многими инвесторами как российскими, так и зарубежными. Перед вами самый полный список советов, которые инвесторы давали команде нашего проекта Grrow.me Подчеркну, что советы адресованы одному и тому же стартапу. Многие рекомендации являются кочующими из уст в уста цитатами кого-то из великих.

1. MVP против «Идеального продукта»
1.1.
«Запуская проект, вы никогда не сможете заранее сказать, как отреагирует на него рынок. Ваше видение своего продукта является галлюцинацией. Не нужно фантазий. Стартуйте с MVP (минимальный жизнеспособный продукт) и дальше используйте Lean Startup (набор коротких итераций). Только так создаются все успешные компании. В итоге вы сами удивитесь, увидев созданный вами бизнес».

image

Ему вторит высказывание:

«Только пользователь или ваш клиент знает, что ему нужно. Наблюдайте за пользователями. Не диктуйте рынку своё мнение, а слушайте рынок. Повинуйтесь рынку, идите за ним как рыба-прилипала за китом».

Разрази меня гром, если этот совет неверен. Абсолютно все акселераторы стартапов проповедуют это принцип, он принят в 99% успешных компаний. Надо быть глупцом, чтобы не следовать этому совету. Однако:
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments10

9 анти-паттернов, о которых должен знать каждый программист

Reading time9 min
Views149K
В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени.

Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

1 Преждевременная оптимизация


В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
Дональд Кнут

Хотя никогда зачастую лучше, чем прямо сейчас
Тим Питерс, Зен языка Python


Что это

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

Почему плохо

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

Как избежать

Сначала пишите чистый, читаемый, работающий код, используя известные и проверенные алгоритмы и инструменты. При необходимости используйте инструменты для профилирования для поиска узких мест. Полагайтесь на измерения, а не на догадки и предположения.
Читать дальше →
Total votes 117: ↑97 and ↓20+77
Comments123

Книги, видео и другие материалы по разработке под iOS

Reading time4 min
Views114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


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

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →
Total votes 105: ↑99 and ↓6+93
Comments58

Хочешь быть iOS разработчиком? Будь им!

Reading time2 min
Views388K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →
Total votes 234: ↑222 and ↓12+210
Comments38

Сколько новичку можно заработать на YouTube в 2015 году?

Reading time8 min
Views236K
Ваш сайт – это ваши правила, но и полностью ваши проблемы с его развитием. 15 SEO-экспертов в прошлой статье указали причины, мешающие продвижению новых ресурсов. Легкая ошибка – и пришествие трафика откладывается на неопределенный срок. А вместе с ним – и запланированный доход. Но ведь можно использовать для заработка и чужие сайты, которые не нужно продвигать! И иногда зарабатывать с их помощью получается быстрее даже новичку… Рассмотрим нюансы привлечения трафика из второго по посещаемости сайта в Мире – YouTube.com. И поможет нам в этом Денис Коновалов (konoden).


Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments9

Правильное использование Yii

Reading time18 min
Views115K

Вступление


На самом деле, в заголовке должен стоять знак вопроса. Довольно долго я не кодил как на yii, так и на php в целом. Сейчас, вернувшись, хочется переосмыслить свои принципы разработки, понять куда двигаться дальше. И лучший способ — изложить их и выложить на ревью профессионалам, что я и делаю в этом посте. Несмотря на то, что я преследую чисто корыстные цели, пост будет полезен многим новичкам, и даже не новичкам.
Читать дальше →
Total votes 79: ↑66 and ↓13+53
Comments54

eCommerce для новичков

Reading time6 min
Views81K


От переводчика: этот перевод предназначен для тех, кто совершает первые шаги в сфере e-Commerce или только задумывается над созданием бизнеса в этой области. Здесь довольно крупными мазками обрисовано то, с чего стоит начинать и о чем желательно задуматься в начале этого большого (и, безусловно, интересного) пути. Мы решили добавить к материалу несколько ссылок на наши статьи и переводы – к ним можно будет обратиться, чтобы подробнее изучить ряд вопросов, затронутых в этом топике.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments1

Стартапы без бизнес-плана всего лишь дорогое хобби

Reading time2 min
Views9.3K
IPA
Если вы продали свой последний стартап за $800 млн, то вы, вероятно, уже знаете, как построить новый бизнес, и даже самые консервативные инвесторы не будут беспокоиться о качестве вашего следующего бизнес-плана. Но для остальных из нас, не верьте популярному мифу Кремниевой долины, что все, что вам нужно сделать, это набросать вашу идею на миллион долларов на салфетке и инвесторы выстроятся в очередь, чтобы отдать вам свои денежки.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

58 признаков хорошего интерфейса

Reading time16 min
Views381K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →
Total votes 226: ↑182 and ↓44+138
Comments102

RESTful API для сервера – делаем правильно (Часть 2)

Reading time9 min
Views86K
В первой части статьи я кратко описал принципы RESTful и объяснил каким образом следует проектировать архитектуру вашего сервера так, чтобы можно было легко выпускать новые и прекращать поддержку устаревших версий вашего API. В этой части я кратко расскажу о HATEOAS и Hypermedia, а затем расскажу о роли, которую они могут сыграть при разработке нативных приложений для мобильных устройств. Но главной темой этой статьи будет реализация кэширования (точнее поддержка кэширования на стороне сервера). Целевая аудитория включает разработчиков серверного ПО и, в какой то мере, разработчиков под iOS или под другие мобильные платформы.

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments14

RESTful API для сервера – делаем правильно (Часть 1)

Reading time13 min
Views333K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments57

Несколько интересных особенностей MySQL

Reading time8 min
Views63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


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

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →
Total votes 113: ↑110 and ↓3+107
Comments95

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Reading time9 min
Views120K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

Читать дальше →
Total votes 74: ↑58 and ↓16+42
Comments57

Пишем спецификации. Часть 2. Инструменты. Вики – всё под рукой

Reading time7 min
Views11K
Продолжаю разговор об инструментах, с помощью которых можно сделать такой сложный и непривычный процесс написания спецификаций простым, доступным и даже прикольным (см. Часть 1. Инструменты — начинаем с простого). Я уже давно подумывал о том, чтобы приспособить для этого вики.
Что из этого вышло – читайте ниже.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments9

26 советов начинающим стартаперам от опытного предпринимателя

Reading time11 min
Views94K
*Эта статья впервые была опубликована в журнале Forbes от 27 Июня 2014 года. На Хабре публикуется её полная версия.

Вот уже 9 лет я занимаюсь интернет-бизнесом и за это время успел создать и вывести на прибыльность 5 собственных стартапов. Кроме того, один из основных моих бизнесов – это заказная веб-разработка, куда часто приходят клиенты, которые хотят разработать свой интернет-стартап и поэтому я все 9 лет каждый день сталкиваюсь с разными проектами, многие из которых являются стартапами в полном смысле этого слова.
Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments54

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Traits в php 5.4. Разбираем детали реализации

Reading time8 min
Views53K
Совсем недавно вышла первая beta php 5.4, а пока я писал топик подоспела и вторая. Одно из нововведений в 5.4 – это traits (типажи). Предлагаю разобраться во всех деталях в том, что же типажи из себя представляют в php.

Простой пример типажа, чтобы не заглядывать в Википедею:
//определение типажа
trait Pprint 
{
    public function whoAmI()
    {
        return get_class($this) . ': ' . (string) $this;
    }
}

class Human 
{
    use Pprint; //подключаем типаж, ключевое слово use

    protected $_name = 'unknown';
    
    public function __construct($name)
    {
        $this->_name = $name;
    }

    public function __toString()
    {
        return (string) $this->_name;
    }   
}

$a = new Human('Nikita');
echo $a->whoAmI(), PHP_EOL; //=> Human: Nikita

Как видно, к классу Human было добавлено поведение из типажа Pprint.

Но во всём есть свои детали.
О них далее
Total votes 163: ↑155 and ↓8+147
Comments102

PHP Patterns: Singleton

Reading time2 min
Views76K

Singleton (Одиночка)


Введение


Singleton – один из самых простых шаблонов для понимания. Основное назначение – гарантировать существование только одно экземпляра класса. Причиной обычно является следующее: требуется только один объект исходного класса и Вам необходимо, что бы объект был доступен в любом месте приложения, т.е. глобальный доступ.
Читать дальше →
Rating0
Comments0

Singleton и Late static binding

Reading time3 min
Views8.1K
Количество Singleton'ов в проекте зачастую прямо пропорционально его сложности и размеру. Естественно, что описывать закрытый конструктор, статическое свойство-объект и метод его получения для сколь-либо ощутимого количества классов немного утомительно, да и пожалуй неверно. Отсюда встаёт вопрос: как «вынести за скобки» реализацию Singleton'а?
Читать дальше →
Total votes 58: ↑43 and ↓15+28
Comments61

Information

Rating
Does not participate
Date of birth
Registered
Activity