Февраль 2010

Метод.

18.02.2010

Как объяснить людям нормальную методологию разработки проекта?

Что код, это ещё не всё. Что нужно рисовать дизайн, что нужно смотреть юзабилити.

Слава богу, что Первый – дизайнер по профессии. Потому хотя бы частично проблемы с дизайном решаются. А вот юзабилиста по профессии у нас нет. Потому все автоматом считают, что юзабилист я. А ежели не понравилось – ну как же ты, бля, не догадался, что надо было удобно сделать??

Каждый раз, когда я прошу посмотреть то или иное, Второй мне высказывает – а почему ты сам не протестировал?? Сайт, разумеется, не смотрит. Зато потом высказать, что что-то выглядит не так, как он ожидал – за милую душу.

Ладно, вот вам нормальная методология.

1. Придумывается, какой функционал должен быть.
2. Рисуется дизайн под этот функционал. Не ручкой на листочке, а нормальный дизайн.
3. Пишется код.
4. Пишутся тесты. (или наоборот с предыдущим пунктом)
5. Проверяется юзабилити. Если нужно – возврат на 1,2 или 3.
6. ???
7. PROFIT.

А вот наш вариант.

1. Надо бы сделать А (чем более общая характеристика, тем лучше).
2. Пишется код.
3. Пишется код для Б.
4. В коде А правится дизайн наживую (репозитории – это слишком сложно)
5. Пишется код для В.
6. В Б меняется функционал.
7. Всё это показывается инвесторам, в процессе у показывающих возникают вопросы, как сделать то или иное, на которые отвечаю я, как будто зарегаться на нашем сайте подсилу только профессональным веб-программистам. Как на это должен реагировать инвестор (которому понятно, что регаться будут и простые люди) – не понятно.

Мелодрама.

17.02.2010

То, что тут происходит, свободно можно использовать как сюжет для мыльного сериала. Выйдет не хуже, а может лучше многих. Ссоры, интриги, душевные метания. Ладно бы у меня – у остальных тоже.

Вчера.

16.02.2010

Краткое содержание вчерашнего дня.

- О, господи, всё не так!
- А как должно быть?
- Можно было догадаться, что вот так и вот так!
- Я не умею догадываться.
- Не надо считать, что твоя хата с краю и делать задачи «на отъебись»
- Давай без претензий, я не умею догадываться!
- Надо научиться!

Потом поехали развлекаться. Клеили объявления о ремонте.
Все старательно делают вид, что эта деятельность имеет какой-то смысл, кроме развлекательного, но потратить целый рабочий день двух IT-cпециалистов и одного «незнаюявчемонспециалист»-а (бензин вообще не считаем) для расклейки полутора сотен объявлений не может иметь другой цели, кроме развлекательной.

Кто не в курсе, расклейка полутысячи объявлений по москве обойдётся меньше, чем в тысячу рублей. Таргетинг у них будет хуже, чем у наших полутора сотен, но всё равно это намного меньше, чем мы потратили, поев бизнес-ланчи в кафе на Рублевке.

Впрочем, было весело.

168

Социальная пассивность.

14.02.2010

Коммунизм, как общественно-экономическая формация, имеет серьёзный изъян – индифферентное отношение к рациональному расходованию материальных средств, перешедших в статус общественных или получивших таковой в результате соглашения, гласного или негласного. Точнее, таковой недостаток происходит из увеличенного, по отношению к другим формациям, соотношения общественных и квазиобщественных м.с. (материальных средств) к средствам, не являющимся таковыми. Что, ввиду априори низкой сознательности индивидуума, приводит к более быстрому и менее равномерному их исчерпанию, благодаря уменьшению частоты комплексного и обстоятельного подхода к удовлетворению потребностей с использованием данных м.с.

Жил бы я один – ни в жизнь не стал бы завтракать стограммовым куском сыра. Но из полутора килограмм гауды осталось полкило за сутки с небольшим. Т.к. никто не утруждает себя приготовлением еды, когда можно есть сыры, кефиры, рулеты рыбные какие-то, клубника мороженная и пр., мне тоже особого смысла экономить что-либо нет. Готовлю, когда хочется именно горячего.

P.S. Я готов к написанию статей для википедии или ещё поучиться?
169

Нагрузка.

14.02.2010

Проплатил наконец хостинг, заодно прибавил лимит допустимой нагрузки. Дня 4 назад где-то. Заодно поставил на крон проверку сайта. Проверю, какова, в процентах, сейчас его доступность.

170

Экперемент.

13.02.2010

Проведем эксперемент.
Пару дней буду есть, учить английский и кодить. Больше ничего. Посмотрим, сколько часов протяну, пока не сорвусь.

P.S. Ещё твиттер вести. https://twitter.com/realmeru

171

Язык.

12.02.2010

Заглянул в менеджер задач. Там всё такое грустное и противное, аж жуть. Ни одной задачи, для которой не нужно глубокое погружение в код. Отложил всё в сторону, открыл anki.

Мозгу нужно регулярное интеллектуальное напряжение. А моему – постоянное, если я не сплю. Привычка уже. Сойдёт любая жевачка для ума – хабр, лор, игры, фильмы, даже кодинг. Только с кодингом одно плохо – думать надо. Нужно не просто напряжение мозга, нужно что бы мозг выдавал какой-то не совсем идиотский продукт своей деятельности. А с прочим – не нужно. Результат работы мозга в остальных случаях может быть любой, т.к. главное процесс.

Но и тратить время просто так не хочется. Потому постоянно ищутся точки приложения усилий. Последняя – начал учить хирагану. Её уже практически выучил, занялся катаканой, а с неё переключился на английский язык. Словарный запас у меня никакой, потому сижу, учу слова. Где-то полтора-два часа уходит каждый день – уже четвертый пошел.

Только хабр читать и «теорию большого взрыва» смотреть веселее. Там не видно, насколько плохо мозг выполняет свои функции. В данном случае – ассоциативные. Вижу слово – помню определение на английском – а вспомнить русский эквивалент не выходит. У меня, как выяснилось, не только английского языка словарный запас маленький, но и русского. Презренный, исчерпывающий, несклонный – вспомнить эти и кучу других слов по ассоциациям нереально трудно. «Полный, всеобьемлющий, целиковый, бля, сука, да как же оно!?». В результате это дурацкое exhaustive я вижу уже сотый раз, каждый раз клацаю в гугл-переводчике (слава богу, немного оттюнинговал javascript-ом – добавил reset) и каждый раз надеюсь, что запомню именно это «всеобьемлющий», а не кучу синонимов.

В итоге я пока с трудом осилил полторы сотни слов из планируемых 5 тысяч. Длинная жевачка мне предстоит.

172

Продублировать paginate symfony admin generator.

12.02.2010

Я постепенно становлюсь стойким фанатом Javascript.

В админке все обьекты выводятся постранично, штук по 20 на страницу. И под списком есть листалка, примерно такая

Во-первых, захотелось, что бы такая же листалка выводилась вверху списка. Во-вторых, что бы были стрелочки «10 страниц назад» и «10 страниц вперед».

Править код, который генерит код, рисующий админку – нельзя. При обновлении symfony придётся долго и мучительно сливать все изменения.

Поправить сгенеренный код – можно, но в админке 31 модуль, т.е. 31 такой список, в каждый из которых нужно будет перекопипастить кусок кода. Плюс, если заменить сгенеренный код своим, то потом он не будет перегенерироваться, если что-нибудь поменяешь в конфиге админки, придётся каждый раз править вручную. Тоже не вариант, вообщем.

На jquery всё это заняло 7 строчек. Времени, как обычно, до черта, больше часа, но 7 строчек – это круто. Впрочем, все и так знают, что jquery жгёт. Но я фанат не jquery, а javascript, который позволяет делать вот такое:

if ( (pagen=page+10) > (p=$(«#lastlink») .attr(«href») .split(‘/page/’))[1] ) pagen=p[1];

Не понадобился else (if (x>z) t=1 else t=z), не понадобились присвоения на отдельных строчках. Но самое жесткое вот:
x > (y=z)[1]

Мы присвоили Y массив Z, потом взяли первый элемент и сравнили с X. Зачем? Затем, что потом нулевой элемент этого массива мы позже тоже используем (иначе б можно было написать x > (y=z[1])).

Впрочем, использовать потом y[0] мне показалось некрасивым, к тому же в коде не только else не нужен, но и if абсолютно лишний и через полчаса код стал вот таким

pagen=Math.min(page+10, ([url,]=$(«#lastlink») .attr(«href») .split(‘/page/’))[1]);

[url,], это примерно [url,p], просто опустили второй параметр, т.к. он нам не понадобится больше. Впрочем, код быстро усложнился обратно, т.к. гугл-хром не понимает конструкцию типа [A,B]=Z. А очень зря. Браузеры по-взрослее (opera, firefox) её понимают. Надеюсь, хром тоже подрастёт.


page=parseInt($(".sf_admin_list .float-right span:first").text());
pagep=Math.max(1,page-10);
pagen=Math.min(page+10, (p=$(".sf_admin_list .float-right a:last").attr("href").split('/page/'))[1]);
url=p[0];
$(".sf_admin_list .float-right a:first").after("<a href=\"" + url +"/page/" + pagep + "\"><img align=\"absmiddle\" src=\"/images/admin/previous10.png\"></a>");
$(".sf_admin_list .float-right a:last").before("<a href=\"" + url +"/page/" + pagen + "\"><img align=\"absmiddle\" src=\"/images/admin/next10.png\"></a>");
$(".sf_admin_list thead:first").prepend($(".sf_admin_list tfoot:first").html() + '<tr><td colspan="9"></td></tr>');

173

Инсайдер.

12.02.2010

Неделю-две назад.

Захожу на кухню, Trash спрашивает у второго – «а ты что думаешь по поводу инсайдера?». Первый – «нет, ты лучше у Секрета спроси».
1 – Что ты думаешь по поводу того, что пишет инсайдер?
S – А о чем он пишет? Какая тематика?
1 – О, обо всем.
S – Очередной всесторонний профессионал?
T – О жизни, откуда мы и куда уйдём.
S – Это далеко не обо всем. Кому это вообще интересно?

На том разговор и закончили. Кто такой этот инсайдер и что он там пишет я до сих пор не знаю. Врожденное любопытство у меня имеется, но жалко тратить время на ерунду – вопрос «о жизни» давно решен, ответ на него известен (мне, про мою жизнь, про ваши спрашивайте у себя сами). Есть куча частных «белых пятен» в текущей картине мира, но прояснение большей части из них достаточно бессмысленно.

Сегодня.

Новенький:
- Она так всё обставила, что смерть для него была самым легким выходом.

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

Стандарты.

12.02.2010

Все течет, всё меняется. Однако есть люди, которые этого не видят. И не важно, какая скорость этих изменений, даже если мир будет переворачиваться с ног на голову раз в неделю, будут люди, которые будут считать, что происходившее в понедельник было стандартом. Ещё и приводить доводы в стиле – «во вторник и среду было так же, значит и завтра так же будет».

Особенно смешно это выглядит в контексте холивара «Windows vs Linux». Мол, везде всегда стояла винда, потому ни одному разумному человеку тратить время на Linux не стоит.

Смешно потому что не только не «всегда», даже какое-то продолжительное время винда нигде не стояла. Винда вообще существует всего 20 лет, за это время на куче предприятий и школ даже директора не поменялись.

Разумеется, в IT огромное количество людей, для которых 20 лет – много больше их сознательной жизни. Однако они могут вспомнить время без сотовых телефонов или, скажем, без быстрого интернета (или вообще без интернета). Как можно считать интернет стандартом, если хоть сколько-нибудь значимое количество людей про него знает от силы лет 10? К примеру. Завтра производители начнут выпускать модули wifi, работающие сразу на двух частотах (что бы подсоединяться сразу к двум ближайшим точкам), а послезавтра про интернет будут знать только олдфаги, т.к. все будут сидеть во фринете без каких-либо провайдеров, а сеть будет одноранговой (p2p). Невозможно? Для тех, для кого интернет существовал всю их сознательную жизнь – да. Так же невозможно, как невозможно продать больше «5 компьютеров» или телефон, т.к. «за 5 центов всегда можно отправить паренька сбегать на телеграф». Полагаю, примеры мной притянуты за уши, но общая схема проста – у кого в этой жизни всё устаканилось, всегда будут консерваторами, вот только обращать на них внимание не стоит.

Это всё не довод в пользу Linux. Это довод против доводов в стиле «а у тёти Клаши и у сантехника Вовы винда стоит, потому и нам всем надо пользоваться виндой, ведь это же отраслевой стандарт! И детей учить тоже надо винде, ведь позавчера пользовались виндой, значит и через 10 лет, когда нынешние шестикласники закончат университеты, все будут пользоваться виндой».

P.S. Мне абсолютно похуй, кто какой осью пользуется.

174