• Как обьяснить пользователю, что его сайт морально устарел?

    aen
    @aen
    Keep calm and 'use strict';
    Нравится или нет - это очень субъективно. Если они привыкли к дизайну и он их во всем устраивает, то они не согласятся его менять. Особенно если за это отвечает какая-нибудь тетка-заведующая под 50 лет от роду.
    Ответ написан
    3 комментария
  • Реально ли установить и успешно без особых глюков работать в Photoshop под Ubuntu?

    vladamir
    @vladamir
    Скорее нет, чем да :) Лучше думаю использовать альтернативные решения. Wine вообще по-моему не может полноценно установить ни одну exe-прогу.
    Ответ написан
    Комментировать
  • В чем разница между grunt и grunt-cli?

    aen
    @aen
    Keep calm and 'use strict';
    grunt-cli - это command line interface, который позволяет работать с grunt в консоли (терминале).
    Ответ написан
    1 комментарий
  • Путь из фрилансера в аутсорс контору. Как?

    opium
    @opium
    Просто люблю качественно работать
    у вас очень странные вопросы.
    какая разница между 2 наемными людьми и 4 , да никакой , разница уже идет на 15-20 когда у вас просто за день не будет хватать времени поговорить с каждым.
    Так что если вы управляетесь с 2 то чем для вас страшны 4?
    Очень глупо считать что поменял страну и там все побежало.
    Вот у меня у соседа стоит страна тайланд и он работает по 70 баксов в час.
    У меня стоит Россия и я работаю по 50, могу поменять на 80 если захочу, ваш ценник зависит от вас, а не от того в индии вы или нет.
    Ещё один знакомый со страной малазия, тоже работает по 50 баксов, но в месяц при этом он в одного зарабатывает $16к, смотрю иногда на его профайл и любуюсь, он ещё и мне иногда работы подбрасывает.
    Судя по всему вы уже несколько лет проработали на фрилансе и скажем достигли каких никаких высот и рейтинга в 30 баксов в час или же 1000 рублей в час для ровного счета.
    Скажем вы наняли 4 людей в фултайм вы пятый и определились с зарплатой для них в 1000 баксов.
    Вы уже умный и цена проекта для вас не с потолка взята, а состоит из количества часов умноженные на ваш рейтинг в 1000 рублей в час.
    Скажем у вас идет все очень плохо, вы весь месяц ищите проекты и находите всегда всего один за 5000 баксов, ну вот в лепешку разбиваетесь, а хотя бы второго не можете найти.
    Как это выглядит для вас внутри?
    Проект стоит 5000 баксов = 150 000 рублей то есть для него вам надо 150 часов.
    Вас пятеро и грубо говоря 150/5 = 50 часов на брата, то есть примерно 6 рабочих дней.
    В итоге вы получаете в начале месяц проект
    работаете все впятером одну неделю и сдаете проект уже в воскресенье, дальше вы впятером курите бамбук 23 дня до конца месяца, второго проекта у вас нет у вас все с этим плохо как описано выше.
    В конце месяца у вас 5000 баксов кеша, 5 человек, выдаем всем зп по тыще баксов. в сухом остатке вы больше трех недель пинали балду, все равно все заработали свое бабло, продуктивно поработали одну неделю, все счастливы.
    Но тут дилема вы хотите больше зарабатывать.
    Предположим туже ситуацию что у вас все плохо и так же один проект.
    Берем ещё 4 человека только не фултайм, а на неделю, то есть зарплата в четверть месячной $250, предположим что все очень плохо и на месяц была у вас оптовая скидка на время сотрудников, просто подымаем зп на 20 процентов просто так получаем $300
    Работаем неделю сдаем проект в воскресенье.
    Получаем 5000 баксов кеша, платим зп 4 сотрудникам 1200 баксов. Сами платим себе зп 3800 баксов это примерно 115 тысяч рублей. Ну в целом неплохо поработали.

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

    Она совершенно справедлива скажем и для 5 проектов по 1000 баксов, вместо одного за 5 000 баксов.
    Ответ написан
    4 комментария
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    @resurection
    Я бы сказал так:
    Интерфейс — это возможность задать жёсткую семантику.
    Абстрактный класс — это возможность вынести дублирующийся код и явно это отметить в иерархии.
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    sainnr
    @sainnr
    Как пишут умные люди (Шилдт, Троелсен) в своих умных книжках, интерфейс определяет функциональные возможности, поведение — «что именно следует делать, но не как это делать» (Г.Шилдт, Полное руководство C#). В абстрактном классе «определяется лишь самая общая форма для всех его производных классов, а наполнение ее деталями предоставляется каждому из этих классов» (там же).

    Простой пример, в контексте графического редактора можно определить:
    Абстрактный класс — Figure (геометрическая фигура), от него могут быть образованы классы конкретных фигур — например, Rectangle, Circle и т.д.
    Интерфейс — Drawable (то, что можно нарисовать). Он может быть реализован как во всех классах конкретных фигур (Circle, Rectangle), так и в других классах, не образованных от абстрактного Figure.
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    miraage
    @miraage
    Старый прогер
    К примеру, нужно написать класс для работы с кэшем.

    У нас есть класс Cache, который будет делать всю грязную работу. Он в свою очередь будет использовать библиотеку под определенный тип кэша (memcached, eaccelerator, ...). Для согласованности, библиотека должна реализовать интерфейс cacheInterface, чтобы класс Cache мог нормально работать. Вот небольшой пример.

    Интерфейс для библиотеки:
    Ответ написан
    3 комментария
  • Нагрузочное тестирование сайта

    @cbx
    Если хочется просто и быстро, то вполне сгодится Apache Benchmark идущий в комплекте с веб-сервером Apache. Как-то так:

    ab -n 1000 -c 10 http://my.site.dot.com/url/path/

    Варьируя число одновременных соединений (-c 10) и общее количество запросов (-n 1000) можно примерно прикинуть когда сайт начнёт загибаться. Тестировать лучше с другой машины. Также стоит учесть, что если контент страницы меняется от запроса к запросу (динамика), то AB посчитает такие ответы сервера как Failed: www.celebrazio.net/tech/unix/apache_bench.html

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

    Если захочется большего — смотрите более богатые по возможностям Apache JMeter или Tsung (первый графический, второй консольный). Оба умеют кластеризоваться и генерировать нагрузку с нескольких машин (для этого удобно арендовать инстансы в Amazon EC2), имеют встроенный прокси для записи пользовательских сессий и позволяют задать скорость клиентского соединения (актуально для имитации медленных клиентов и оценки влияния того же nginx). UPD: ещё неплох Yandex Tank

    В любом случае, перед тем как измерять производительность сайта, озаботьтесь мониторингом серверов на которых этот сайт крутится. Без этого смысла в бенчмарках очень мало — они дадут вам какие-то цифры, но дальнейшего плана действий у вас не будет. Как минимум — запустите на машинах утилиту top и смотрите загрузку CPU, потребление памяти и дисковую активность. Также после тестирования просматривайте логи на предмет появившихся ошибок (нехватку сокетов, памяти, ошибки веб-сервера или БД). Полезно включить логгирование медленных запросов в MySQL.

    Дальше — устраняйте выявленные узкие места и повторяйте процесс заново, до тех пор пока не выйдете на приемлемый уровень производительности.
    Ответ написан
    Комментировать
  • Нагрузочное тестирование сайта

    nightfly
    @nightfly
    Для начала попробовать синтетику типа ab или siege?
    Ответ написан
    1 комментарий