Archive

Archive for the ‘программирование’ Category

June 22nd, 2012 No comments

Очень понравилась аналогия:

Для того, чтобы понять эту проблему получше, давайте рассмотрим задачу строительства дома. Допустим, кто-то решил построить дом на определенном участке земли. У дома должно быть два этажа и гараж. У нас даже есть грубая схема передней части дома, начерченная на салфетке. И вот клиент подходит к вам со всей этой информацией и салфеткой и спрашивает: «Тебе же этого хватит, чтобы приступить к строительству, да?» И как вам, хватит?

Если рассуждать логически, то приступать к строительству никак нельзя. Вы не знаете метраж, у вас нет плана этажей, вы даже не представляете, какие требования город предъявляет к строительству новых домов. У вас не хватает информации даже для того, чтобы начать копать землю под фундамент. Единственное логическое решение — сказать клиенту, что он псих и должен вначале точно решить, что именно ему нужно. А теперь представьте, что вы не можете этого сделать, потому что кто-то поставил дедлайн, и вам кровь из носа нужно к нему успеть.

— Ну… — говорит вам клиент, — давай ты пока начнешь строить; а я буду по мере возможности сообщать тебе новую информацию. Так мы не будем тратить время впустую.

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

Старая поговорка гласит: «when you assume, you make an ass of u and me» (когда делаешь предположения, выставляешь идиотами нас обоих), и это чистая правда. Предположения опасны и очень часто лживы. И все же без предположений запустить проект не получится. Итак, что вы делаете. Вы начинаете с допущения, в истинности которого вы точно уверены — о том, что у дома будет два этажа и гараж. Тут же вопрос — гараж надо делать пристройкой или отдельно? И какого размера нужно его делать? Не будем усложнять, допустим, что гараж должен быть построен отдельно и рассчитан на одну машину. Теперь можно работать над гаражом как над отдельным зданием, а потом, когда станут известны подробности о доме, его можно будет строить рядом с гаражом.

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

Спустя еще несколько дней гараж почти закончен. Вы довольны качеством результата, ведь у вас было так мало информации! Вы уже готовы приступить к строительство дома, когда клиент сообщает новые подробности — гараж должен быть рассчитан на две машины и пристроен к дому. У вас трагедия — вы сделали такой крутой гараж, а теперь его придется снести, чтобы построить «нужный». Хуже того, теперь у вас остается меньше времени, чтобы закончить весь проект — и вот вы уже начинаете ворчать.

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

Запрос, который считает нарастающий итог

February 22nd, 2012 No comments

Давно не писал, но тут понадобилось записать себе маленький tip.

Есть табличка аггрегированая и надо считать нарастающий итог. Добрые сотрудники показали как:

select yearmon_concat, (
	select 
		sum(t1.report_10_u5) 
	from opsriskstat_agg_reports t1 
	where t1.yearmon_concat < = t2.yearmon_concat) as nar_itog, 
	report_10_u5
from opsriskstat_agg_reports t2
order by yearmon_concat desc 

Набольших табличках это работать будет доооолго, но мне подходит.

Как всё медленно!

May 20th, 2011 No comments

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

Так что за проект?

В понедельник я узнал, что до дня Киева, компания, где я работаю, вместе с Google Украина запускает совместный проект. Google что-то похожее уже запускал, а теперь очередь и “Газеты по-киевски” ). Не уверен что мне можно рассказывать, что же это будет, но сама  мысль, что с партнёрстве с Google да ещё то, что они обещают его отдать нам, уже радует.

Когда же всё это будет видно?

Кажется, Google собирается выкатывать на всеобщее обозрение всё в субботу. Я, не Гугл, я, надеюсь, всё покажу в пятницу ( не люблю запускаться в пятницу! ). В среду, по планам опять же моим, будет  предварительная тестовая версия, так что смогу выслать ссылки желающим протестировать.

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

Скоро похвастаюсь

May 17th, 2011 No comments

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

ЗЫ, Радует, местами, наличие работы! )

статистика на The One

March 30th, 2011 No comments

Забыл написать, что на The One прикрутил статистику. Теперь на главной странице показывается количество отправленых и полученых сообщений. Цифры страшные ;) Только вопрос стоян не в самих цифрах и данных, а втом, чтобы написать каркас для записи логов и аггрегации их в таблицы. Потом стал вопрос о выводе статистических данных и пришлось написать несколько класов для работы с OpenChart.

Что же можно увидеть?

  1. общую статистику на страницах сервиса
  2. красивый график статистики
  3. выбрать месяц для графика

таймер в one.web2.com.ua

February 18th, 2011 3 comments

С подачи друга trisa, реализовал фичу на one.web2.com.ua.

Часто бывает так, что вы удалились из-за компа за пивом/за бутером/к белому камню. А в это время злобные сотрудники служб выломали вашу дверь, застали вас сидящим с ноутом в туалете, и сообщение с паролями к ботнету у вас висит на мониторе в The One. Попадалово, правда? ;) Как с этим бороться? Read more…

ещё!

February 16th, 2011 No comments

Как я писал вчера, в укороченных ссылках есть 2 лишних символа. А теперь нет надоедливых слэшей "/"!

The One жив, без паники

February 16th, 2011 No comments

От меня давно не было вестей. Стал ленивее ;) . Хотя новостей на The One не было и ничего не писал, это не означает что там нет изменений. Многие изменения не видны и многие ещё не доделаны, но сегодня решился написать. Тем более, что есть одно видимое изменение.

Я подумал, что строить ссылки в которых будет дата – это уж очень много, и с 8 символов даты урезал их до одного. "Прирост" в 8 раз ;) . Так что, будь я маркетологом, то уже бы писал фразу, что стало в 8 раз лучше :) .

Дата в ссылке была заменена на шестнадцатеричное представление месяца. Ссылки стали выглядеть вот так:

Мне теперь кажется, что в ней есть 2 лишних символа, а вам? :)

Как я склеиваю Zend Framework

January 29th, 2011 10 comments

Часто надо собрать Zend Framework в одни файл, при этом удалить все require и include. На просторах интернета есть собранные все файлы этого фреймворка, но, иногда, надо собрать только малую часть. Пока, я не нашёл скрипта, чтобы делать один файл да и хотелось этот процесс интегрировать с системой сборки проекта. Так как я использую для сборки Ant, то решил написать скрипт для него. Тем более это оказалось легче, чем предполагал. Тяжело было разобраться с самим Ant`ом ;)

Read more…

HTMLPurifier одним файлом

January 28th, 2011 No comments

Для собственных нужд надо было собрать HTMLPurifier одним файлом. Благо, с ним идёт файл со всеми инклудами, правда, с ошибками. Быстренько написал ant-скрипт, который всё это счастье собирает и вырезает комментарии. Не обошлось и без костылей. Для того, чтобы HTMLPurifier иногда находил нужные ему файлы, надо определить констанкту HTMLPURIFIER_PREFIX. Сборочный скрипт с исходниками и собраный HTMLPurifier выкладываю. Баги и патчи – в комментарии.

UPD. Камрад Александро сказал что я мудак и он есть уже собраный ((( а я ещё комментариии вырезал ;)