Как всегда неожиданно в конце проекта всплывают всякие неприятные вещи, так и у меня выяснилось, что страницы проекта написанного на Zend Framework генерятся от 300 мс до 1с на шустром ноутбуке с включенным акселератором. Бенчмарк ab тоже выдавал неутешительные 4 запроса в секунду. Взяв в руки XDebug я отправился на поиски истины.
koscoder @koscoder
Пользователь
Свободный и бесплатный софт
12 мин
18KЯ знаю, подобный топик уже был, но я думаю этот будет более полным. Свобода… Зачем платить, если можно оценивать чужой энтузиазм и иногда, когда чувства переполняют, жать кнопочку Donate.
+62
Перемножаем матрицы быстро или простая оптимизация программ
5 мин
12KДля тех, кто обучался/обучается на математических или программистских факультетах вузов, я думаю, эта статья будет не в новость, но стало самому интересно протестировать скорость работы разных алгоритмов. Также её можно рассматривать, как некое пособие по оптимизации, но такую оптимизацию стоит проводить только, когда это действительно необходимо, т.к. читаемость кода рушится на глазах, да и отлаживать такое намного сложнее.
Наверняка большинству будет лень читать всю статью, но советую промотать вниз и почитать выводы — помойму интересные цифры там.
Итак задача: перемножить две большие матрицы double-ов (размерами третьего порядка). Для простоты будем рассматривать квадратные матрицы, хотя все алгоритмы подойдут и для прямоугольных. Алгоритм писался на C++, но классов нигде не использовал, так что можно считать код C-совместимым (возможно только cout использовал).
Не буду объяснять тут, что такое матрица и как их перемножать — тем, кто этого не знает, вряд ли будет интересно как ускорить перемножение…
Наверняка большинству будет лень читать всю статью, но советую промотать вниз и почитать выводы — помойму интересные цифры там.
Итак задача: перемножить две большие матрицы double-ов (размерами третьего порядка). Для простоты будем рассматривать квадратные матрицы, хотя все алгоритмы подойдут и для прямоугольных. Алгоритм писался на C++, но классов нигде не использовал, так что можно считать код C-совместимым (возможно только cout использовал).
Не буду объяснять тут, что такое матрица и как их перемножать — тем, кто этого не знает, вряд ли будет интересно как ускорить перемножение…
+28
Уникальный ключ в условиях распределенной БД
3 мин
33KВ случае если вы разделяете данные по нескольким физическим базам данных,
поддержка глобально-уникальных идентификаторов становится не такой уж тривиальной задачей.
Я попытался собрать вместе возможные варианты и рассмотреть их плюсы и минусы.
поддержка глобально-уникальных идентификаторов становится не такой уж тривиальной задачей.
Я попытался собрать вместе возможные варианты и рассмотреть их плюсы и минусы.
+50
Traits в php 5.4. Разбираем детали реализации
8 мин
53KТуториал
Совсем недавно вышла первая 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
.Но во всём есть свои детали.
+147
Работа с объектами в JavaScript: теория и практика
15 мин
219KВ этой статье я хочу по возможности полно и последовательно рассказать о том, что такое объект в JavaScript, каковы его возможности, какие взаимоотношения могут строиться между объектами и какие способы «родного» наследования из этого вытекают, как это все влияет на производительность и что вообще со всем этим делать :)
В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.
Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)
В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.
Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)
+102
Функция echo в PHP может выполняться более 1 секунды
6 мин
14KИли об особенностях управления отдаваемым контентом в PHP.
Поводом для данной статьи послужило двухдневное исследование, результаты которого показали, что безобидные по своей производительности функции echo и print на самом деле могут работать очень долго и их производительность зависит от качества интернета конечного пользователя.
Начну с того, что если бы мне такое сказали вчера, то я покрутил бы сам у этого человека пальцем у виска, однако серия проведенных тестов неумолимо свидетельствует об этом.
+139
Государственная регистрация бизнеса
10 мин
7.1KКо дню рождения своей компании хочу поделиться с Хабром опытом и знаниями по регистрации юридического лица, которые приобрел за год. Я не юрист и не бухгалтер, поэтому, как говорят в американской рекламе, перед применением проконсультируйтесь со специалистом. Постараюсь расказать про налоги при упрощенной системе налогообложения, про процесс регистрации юрлица, про госорганы, с которыми потребуется взаимодействовать. Надеюсь поможет кому-нибудь не совершить ошибок, которые я совершил. Все приведенные цифры справедливы на дату публикации хабратопика, факты из жизни относятся к Москве.
1. Налоги
Существует основной режим налогообложения (ОСНО) и несколько спецрежимов. Один из спецрежимов — упрощенная система налогообложения (УСН, УСНО или упрощенка). Право на упрощенку имеют малые предприятия с годовым оборотом, не превышающим примерно 20 млн рублей (точную сумму можно получить, применив к сумме, указанной в главе 26.2 налогового кодекса РФ инфляционные коэффициенты). Кроме того, есть ограничение по численности штатных сотрудников (не более 100 человек) и некоторые ограничения по видам деятельности. Далее мы будем говорить только об УСНО, так как ведением учета по ОСНО не владею.
1. Налоги
Существует основной режим налогообложения (ОСНО) и несколько спецрежимов. Один из спецрежимов — упрощенная система налогообложения (УСН, УСНО или упрощенка). Право на упрощенку имеют малые предприятия с годовым оборотом, не превышающим примерно 20 млн рублей (точную сумму можно получить, применив к сумме, указанной в главе 26.2 налогового кодекса РФ инфляционные коэффициенты). Кроме того, есть ограничение по численности штатных сотрудников (не более 100 человек) и некоторые ограничения по видам деятельности. Далее мы будем говорить только об УСНО, так как ведением учета по ОСНО не владею.
+103
Zend Framework 1.5.0 уже не beta
1 мин
922+15
BSD vs Linux. Действующие лица.
4 мин
26KПеревод
Встречаем игроков
Здесь я дам небольшой обзор систем, о которых пойдет речь. Заметьте, что представленные истории не претендуют на всестороннее и авторитетное мнение, и не было предпринято ни одной попытки сделать их таковыми.+77
Чудесное воскрешение SCO
2 мин
939В прошедший четверг у всех сторонников OpenSource по всему миру случился отличный повод лишний раз поудивляться изворотливости Зла, воплощением которого для многих из них давно стала американская компания SCO. Долгие годы она вела затяжные судебные разбирательства почти со всем белым светом, пытаясь доказать ему, что именно ей принадлежат права на исходный код ОС Unix System V и основанной на ней ОС SCO UnixWare. Более того, опираясь на эту свою уверенность, компания требовала лицензионных отчислений у корпоративных пользователей Linux, так как ее ядро якобы содержит компоненты, позаимствованные из Unix. В итоге, будучи разбитой в суде в пух и прах, SCO объявила о провальных финансовых результатах и начала процедуру реорганизации, которая по законам США позволяет уйти от банкротства. Однако для ее выполнения у нее очевидно не хватало средств. Но теперь, по всей видимости денег хватит.
Инвестиционная компания Steve Norris Partners, при сотрудничестве «партнеров с Ближнего Востока», выделила компании сумму до $100 млн. Эти деньги, скорее всего, будут направлены на погашение судебных издержек перед Novell и других задолженностей SCO, а также на выпуск «новой линейки продуктов, предназначенной для клиентов на глобальном рынке».
Инвестиционная компания Steve Norris Partners, при сотрудничестве «партнеров с Ближнего Востока», выделила компании сумму до $100 млн. Эти деньги, скорее всего, будут направлены на погашение судебных издержек перед Novell и других задолженностей SCO, а также на выпуск «новой линейки продуктов, предназначенной для клиентов на глобальном рынке».
+13
Написание приложений, основаных на Qt, на языке Python
5 мин
120KПеревод
Доброе время суток.
Недавно решил изучить ещё один язык программирования. Выбор пал на python. Написал несколько маленьких скриптов. Но прежде всего я хотел писать приложения с графическим интерфейсом. В интернете наткнулся на этот небольшой туториал, прочтение которого вылилось в предлагаемый Вашему вниманию перевод. Надеюсь, что кому-нибудь он будет полезен.
Это руководство нацелено на получение представления о том как писать маленькие приложения на python, использующие библотеку Qt.
Недавно решил изучить ещё один язык программирования. Выбор пал на python. Написал несколько маленьких скриптов. Но прежде всего я хотел писать приложения с графическим интерфейсом. В интернете наткнулся на этот небольшой туториал, прочтение которого вылилось в предлагаемый Вашему вниманию перевод. Надеюсь, что кому-нибудь он будет полезен.
Это руководство нацелено на получение представления о том как писать маленькие приложения на python, использующие библотеку Qt.
+52
Описание более 350 команд Линукс
2 мин
42KНа дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.
+66
Интерактивные прототипы. Действующая модель пользовательского интерфейса, часть 2. Подходы к процессу
5 мин
4.4KВ первой части материала я расписал цели создания интерактивного прототипа. Теперь расскажу о процессе работы над ним в нашей компании. Работа над интерактивным прототипом начинается после того как спроектированы схемы страниц (wireframes) и отрисован их визуальный дизайн. Процесс в среднем длится пару недель, после чего начинается его самостоятельное плавание. Модель интерфейса изучают и комментируют заказчик, пользователи и разработчики.
+22
Информация
- В рейтинге
- Не участвует
- Откуда
- Украина
- Дата рождения
- Зарегистрирован
- Активность