О СУКах и проч.
Влад Головач недописал материал о СУКах (CMS) и выложил только вступление. blog.exmachina.ru/archives/000707.html Как всегда — много правильных вещей, в частности то, что «даже кухарка может управлять CMS» — порочная идея.
У меня у самого много мыслей по поводу CMS. Очень много. Нужно сесть и написать. Вообще, накопилось штук пять тем, которые хочется тщательно, во все дырки, описать на «Спектаторе». В том числе и темы «Спектатор против Регистра», или «Блоги vs „Сайты со статьями“», «Проектирование системы vs „выращивание“ системы» и прочее.
Update. Влад выложил еще и свои 10 тезисов о СУКах, например «Идеальная база данных для большинства СУКов — обычная файловая система (вы не забыли, надеюсь, что файловая система это тоже бататаза?). Во-первых, она не ограничивает пользователя в средствах редактирования, во-вторых, она обладает минимумом техподробностей». blog.exmachina.ru/archives/000708.html
Из тезисов становится понятно, о каких СУКах он говорит: работающих на стороне клиента и создающих преимущественно статические файлы. Не могу сказать, что он не прав, на spectator.ru до сих пор стоит подобная система, по сути дела-то. Он описал очень хороший тип СУК, хотя я навскидку могу сказать, где этот тип не будет так хорош. Впрочем, Влад написал же «Нет идеального СУКа. Нет же у нас идеальной верстальной системы. Под разные цели и разных пользователей нужны разные системы». В комментариях у него уже то-то отметился на тему «секретарше леночке, конечно, можно попробовать рассказать, как на фтп лить и ставить ссылки...а смысл ? все равно все испохабит...», — так вот, это глупость. Во-первых, ничего не мешает сделать так, чтобы на ftp оно лезло само и ссылки ставились удобным для секретарши способом, а во-вторых, каждый должен заниматься своим делом: глупые секретарши нужны для того, чтобы хуй у начальника сосать, а всем остальным достаточно потратить пару часов на обучение. Ибо работать с CMS должен человек обученный хотя бы минимальным навыкам.
PS. Эх, надо свой текст про CMS писать.
Life in the Liberty City
В игрушках мне очень нравится ненавязчивый юмор. В GTA III его полно. Для тех, кто не в курсе, GTA — игра про угонщика машин. Со всей аттрибутикой: взрывы, погони, мафия, полиция, радио. Радио — особый шик: оно занимает целый компакт-диск, при этом в игре около десятка радиостанций, переключаться по которым можно колесиком мышки.
Так вот, в GTA нашпиговано много ненавязчивого черного юмора. Ну, например, миссия: заминировать машину, пока чувак жрет в кафе. Когда он поел и выходит, камера показывает его машину и ненавязчиво так вывеску заведения со слоганом: «Eat till you explode». Соответственно, чувак садится в машину и взрывается. Очень много стеба по радио. Так, например, реклама компьютерной игры про обезъянку Pogo. Сначала перечисляются фичи игры, а потом миссии, начиная со спасения из лаборатории («This nasty scientiests deserved to die»), ну «...и, наконец, главная миссия — помоги Pogo стать Президентом Соединенных Штатов».
В рекламе даже адрес сайта дается — Pogo the Monkey dot com.
Ну или, например, как-то на радио в «общательную» программу звонит некий чувак с проблемой «My mom does not think I am real man». Фишка в том, что этот чувак — Томми, один из мафиозных шишек.
Update. В комментариях — ссылка на тексты из радио.
Lazlow: «Alright let’s go over here. Hello caller, you’re on Chatterbox.»
Toni: «Yeah? Is that Lazlow?»
Lazlow: «Yes it is. Who is this?»
Toni: «My name ain’t important! It’s real un-important, okay?!»
Lazlow: «Er...no not really, I mean this is a radio show, people usually tell us their name.»
Toni: «My name I is real un-important! If you wanna keep on being a wise-guy, you’ll find out just how un-important....like...un-important I just got shot in the head un-important! Do I make myself clear?!?»
Lazlow: «Err..yes...wh..why are you calling in today?»
Toni: «Because I need some advice. And I ain’t doing any of that shrink shit!»
Lazlow: «Er..i..if you swear again, we’re gonna have to cut you off, this is a family show.»
Toni: «Sorry sorry, sorry...I’m..I’m..I’m just a little unhappy, a bit agitated. Real angry. It’s my ma! She don’t think I’m a real man. Can you imagine that? I mean, I do a mans job an all, but, she treats me like a little boy! All I get is ’your pa’ this and ’your pa’ that and ’you ain’t a real man Toni’ and it’s driving me freakin’ nuts!!»
Lazlow: «Well, Toni...»
Toni: «Toni!? How’d you know my name was Toni?? You tracing this call? Cos if you are, you’re gonna get real intimately acquainted with...what your brains look like! My name ain’t Toni....okay!?!»
Lazlow: «Err...okay.»
Toni: «But my ma, she keeps going ’Toni Toni, be a real man, stand up for yourself, don’t take no shit!’ But all I do is to be a good son, and I want her to show that she cares for me! Show that...she loves me! And you know...say I was a good kid! But...it seems like nothing’s ever good enough for her, you know what I mean? What do I do?»
Lazlow: «Well Ton...I mean sir...you know in life we have a lot of obligations, and we just have to kinda...face up to them...and right now, I’m obligated to play some commercial announcements. We’ll be back right after this!»
Картинки возвращаются-2
«When using a normal web server setup, images should be stored as files. That is, store only a file reference in the database. The main reason for this is that a normal web server is much better at caching files than database contents. So it it’s much easier to get a fast system if you are using files». (С) Официальная документация MySql, «5.2.12 Other Optimisation Tips».
Господа, вы, извините, заебали... удивляете своей тупостью и особенно — упрямством. Когда с вами спорят, должно же хотя бы закрасться подозрение, что вы не правы, или нет?.. Не надо говорить всякие вещи, которые вы не понимаете, про «а вот ext2fs занимает столько-то, а MySql — это три файла» и прочее. И не надо говорить, что 10000 файлов не кэшируется, а если это запихать все в одну базу данных — оно сразу же отчего-то начнет кешироваться. Следуя вашей логике, нужно завести Специальную Базу Данных и хранить все маленькие файлы именно в ней, одним файлом — чтобы рабтало все быстрей. Ну так заведите ее на своем компьютере. И вообще, не храните у себя много файлов — система будет тормозить. Точно говорю.
Перечитайте еще раз главу пять (MySQL Optimisation) и плюс к этому механизм работы BLOB’ов — чтобы понять, какие они тормозные.
PS. Тесты MySql vs Files
Я не программист
Дальше я пишу о себе всякие хвалебные вещи, читать не обязательно. Как написано в качестве эпиграфа здесь. detail.phpclub.net/
Я на самом деле не программист. Я, конечно, умею программировать, но... не люблю это делать. Я просто люблю решать проблемы (ну и создавать заодно). Я скорее разработчик или дизайнер (дизайнер — это не «оформитель», а, опять таки, «разработчик»). Я умею писать такие ТЗ, что самому читать приятно. Дело в том, что я умею программировать, поэтому мои ТЗ основаны не только на «а вот хочу того и того», а еще и на знании «почему хоть то-то и то-то правильно, а то-то и то-то — нет, и как это все в конце концов реализовать».
Лирическое отступление:
На прошлом месте работы начальник как-то сказал что-то вроде (за точность не ручаюсь, но по духу примерно так) «Вот ты написал два ТЗ, а кому оно нужно? Наш программист сам знает, что нужно». Потом, увидив Spesta, он сказал (дословно): «Блин, классная статистика. Гораздо лучше Киселевской — ты ему ее показывал?». (Диме Кисилеву привет!). При этом я, с присущей мне скромностью, не считаю, что оно лучше запрограммировано. Оно лучше придумано. Именно для этого и нужно ТЗ — не смотря на то, что программист знает, «что нужно», главное — это «как нужно», потому что конечному пользователю все равно общаться с уровнем «как нужно», а «что нужно» его не интересует.
То есть пользователю совершенно не важно, что «нужно собирать такую-то статистику». Ему важно, как потом работать с этой статистикой. Ну, это мы уже залезли, опять же, в интерфейс...
Я тут пару дней думал на тему «Идеальная CMS». Здесь, опять же, проходит грань между программистом и разработчиком. Я придумал пару архитектурных решений и свежих идей, которые «программист» не придумал бы — только потому, что программисту не доводилось так плотно общаться с контентом, как мне.
Основная проблема в том, что я знаю, как ее сделать, но делать не хочу: очень уж лениво так много программировать. Есть, конечно, хороший принцип «If you want something to be done — do it yourself», но...
I actually hate programming,
but I love solving problems.
Rasmus Lerdorf