Май 2009

Симфони, ты не прав!

31.05.2009

Симфони хочет в schema.yml название таблиц с подчёркиваниями, а в fixtures.yml – названия классов (без подчёркиваний и с большой буквы каждое слово). А мог бы тоже хотеть названия таблиц для удобства. Это неправильно, определённо.

Работа.

29.05.2009

Не проект, а змениное гнездо :)

Человека, которого я считал главным в проекте, из проекта выгнали. За компанию – и второго программиста. Я один остался. [skip]

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

Работа.

26.05.2009

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

Но работать не хочется. Бросать пока тоже, но акцент уже точно другой будет. Надо тут продажи поднимать, у нас. Менеджер по продажам вчера второй по-присутствовал полдня. Опять не то, что нужно. О том, что ищем менеджера, дали ещё пару обьявлений. Или, как временное решение на полгода-год, можно удалённо работу поискать symfony+jquery. Не знаю, правда, как сейчас на рынке с предложениями 50к+, но меньше – не особо интересно.

Дилемма справедливости.

20.05.2009

Иду в среду домой с репетиции, вижу, парень обрывает сирень для своей девушки. Противно смотреть, но пофиг. Прошёл мимо.
Сегодня иду, опять какой-то придурок обрывает ту же сирень. Может даже тот же.
- Не надоело дерево ломать?

Пара фраз с парнем, понимание, что до него не пробьёшься. Только бить, но тут вопрос, кто кого побьёт. Скорее он меня. Переключаюсь на девушку.
- Другие радуются, а вы обрываете.
- Ладно, давайте я третью сорву и всё (к тому моменту она уже успела две ветки сорвать).

Иду и думаю. Толку ноль. Нервов куча. Проходить мимо – тоже нервы, да ещё и лохом себя ощущаешь.
Что делать – не понятно.

Fatal error

11.05.2009

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 49 bytes) in [skip] on line 288

Тха-тха. Понятно теперь, зачем серваки с 16 Гб оперативы нужны. Это из нашего проекта ошибочка.

Пидоры, кругом пидоры.

07.05.2009

Если http://sub.domain.ru/ выдаёт редирект – всё, пиздец, опера по нему не переходит. Файл отправляет (видимо, не проверил ещё), а сама с умным видом остаётся там, где была. Никакого js нет, я весь код страницы привёл.

Что за херь второй день подряд?

Jquery form plugin

07.05.2009

Понаписали,

if (true) {

блять, кода,

if (false) {

Сегодня я ругаюсь не на нашу социальную сеть. Там всё отлично. Если не считать того, что я вчера обменял час жизни на знание о том, что при запуске «symfony cc» инициализируются все классы, которые инициализируются при открытии сайта в браузере, но при этом не создаётся «контекст». Т.е. sfContext::getInstance() использовать нельзя. И ещё час на знание метода sfContext::hasInstance().

Так вот. Сегодня я ругаюсь на jQuery Form Plugin. Нигде в документации не напоминают, что js не может прочитать текст ифрейма, если ифрейм грузится с домена, отличного от того, с которого грузится сам скрипт (даже если это сабдомен). Но при этом пытаются читать и при этом перехватывают ошибки. Залезть в код и напихать отладочной информации – минут 20 заняло. Но вот мысль о том, что это придётся сделать, втекала в меня по капле пару часов.

Программирование по-индийски.

04.05.2009

Что-то не получается из меня индийца, который на гора будет функционал пачками выдавать.
Каждый день – как борьба за научно-технический прогресс.
Чинил просмотр фоток пользователями – нужно цепочки делать, что б листать можно было туда-обратно. Так вот, цепочки заранее генерим в мемкеш раз в минуту, потом берём оттуда. Пришлось узнать, как в symfony пишутся tasks, и переписать всё по-человечески, что б можно было конфиги читать симофневские и классами его пользоваться.
Вчера (да, да, пашу без выходных) решил написать кеширование для одного раздела. Какого – не скажу, т.к. дырку нашёл небольшую(закрыл, конечно, но это пока не зарелизено). Раз уж пишу новую фичу, нужно написать тест. Пара часов ушла на то, что бы прочитать, понять и что бы просто тесты заработали, сам тестировочный функционал. Нереально был в шоке от того, что встроенный тестировочный браузер symfony не передаёт реффереры. В 1.1 во всяком случае.
Тесты мне понравились. Пришлось немного по-рефакторить, потому что текущий код, тесты не мог пройти в принципе. Например, setcookie тесты не пройдёт, потому что выполнится в середине тестировочного скрипта, когда вывод уже начался.
В результате написал пару тестов, за кеширование взяться не успел. Сейчас возьмусь.

Объектная модель.

02.05.2009

Раньше я не очень часто пользовался объектами. Не для всех задач они нужны вообще.
А тут смотрю код, и вижу везде 2 момента.

а. Переменные обычно не инициализируют. $arr[], с результатом в виде нотиса – обычное дело. Пришось тупо нотисы выключить, перелапатить несколько мегов кода я пока не готов.

б. Употребляется такая конструкция.
while(crit()) $arr[]=something();
$this->$arr=$arr;
Зачем тратить память на лишний массив, не понятно. Иногда значительную память – мегабайты.

И тут случайно сделал вот так:
while(crit()) $this->$arr[]=something();

Если не понятно – забыл инициализировать.
$this->$arr=array();

Что получилось? Ничего, переменная не присвоилась. Теперь я люблю объекты. :) :) :)

P.S. Мораль, для тех, кто не понял.
Лишнюю переменную заводили потому, что без неё не работало.

Консерватория.

02.05.2009

Что-то в консерватории не так. По моим раскладам получается, что проект с лямом хитов в сутки можно чуть ли не на vds-ке держать. При правильной архитектуре.
Если посчитать, это 20 хитов в секунду. Такое даже вордпресс выдержит, даже без кеширования opcode, не говоря уже о кешировании данных, html и прочего.
При минимальном кешировании данных это на уровне сотни запросов к базе в ту же секунду. Хорошо, не vds, но нормальный сервак это тянуть должен. Плюс серв под контент, где всякие картинки отдаются. А при нормальном кешировании – больше запроса на хит не должно получаться.
А тут только под базу новый серв заказали, 16 Gb оперативы. Размер базы – 7Gb. Ничего, кроме базы на серве не крутится, зачем, интересно, столько оперативы? Впрочем, с админом не спорю, ему виднее, это я серьёзно. Но база до сих пор не в оперативе (в смысле, не настроено держать ключевые таблицы в озу), хотят только в понедельник это сделать. Вот этого не понимаю.

Ладно, пойду баги чинить. Архитектуру ещё успеем поменять. Как минимум, memcachedb по сессии я сделаю. Заебало логиниться каждые несколько минут. Юзеров, полагаю, это тоже заебало.