Обновить
23
0
Роман «Balancer» Каршиев @Bal

Пользователь

Отправить сообщение
>Характерно ли для Вашего кода такое:
>class User extends DbRow {…

Нет. Для моего кода характерно такое:

class user extends base_object
{

function storage_engine() { return 'storage_db_mysql'; }
}

ORM — это лишь один из внутренних механизмов объекта. И логика объекта никак не должна быть на него повязана.
А чем это лучше использования compose key?

Compose + «-» + «-» + «-» даст «—».
Compose + «=» + «Y» даст «¥».

Всё в любой штатной раскладке (и всё легко расширяемо самостоятельно, если нужно):

«Вложенные русские „кавычки”»
25°C
±2,3
²³⁵U
H₂SO₄
½ ¾
© ™ Ⓡ Ⓒ €
… … …

:)

Даже в конфиги лезть не обязательно, скажем, в Gnome это в параметрах клавиатуры задаётся.

Когда-то у себя писал об этом: balancer.ru/tech/forum/2008/02/t53372--Compose-key-Windows-otdykhaet.9679.html
1. Никогда не меняю ничего в имеющейся структуре так, чтобы это могло привести к потере данных. Только расширения и модификации.

2. Вследствие этого спокойно меняю структуру на продакшне без боязни что-то ломать.

3. Потом mysqldump | mysql — и изменения с продакшна у меня на тестовом вместе со свежими данными.

4. Вношу нужные правки в код тестового и отлаживаю его.

5. Коммичу изменения кода тестового на продакшн.
>Разве «выглядеть по-человечески» не субъективное понятие?

Это очень и очень объективное понятие, заложенное в наш мозг миллионами лет эволюции :) Человек (да и высшие приматы в целом) в лице другого человека способен мгновенно выделять массу деталей по минимальным отклонениям от средней нормы.
>Да и про LIMIT в mysql советую прочитать. Работает он очень быстро, поскольку строки MySQL попросту пропускает не записывая в результат.

Ваши бы слова, да в эту физическую реальность… :)

У меня на форуме всего 1,5млн. постингов. Уже после ~700 тыс. на топиках с десятками страниц записи вида SELECT * FROM posts WHERE topic_id =… ORDER BY… LIMIT 10000, 15; стали капитально вешать сервер. Не смотря на все оптимизации индексов и настроек :)

Вылечилось только введением отдельного поля «номер страницы».

MySQL очень болезненно относится к выборке последних значений в большой отсортированной таблице.
Попов — это Mosaic…

Интересно, многие ли тут ещё помнят время, когда не было ни даже IE и Netscape… ;)
Пассажирские самолёты втрое ниже летают.
>А вот сверхвуковому может и не повести. Но они действительно летают редко.

Таковых уже почти не осталось. «Конкорды» были сняты с линий в 2003-м, SR-71 отлетали вторую жизнь, кажется, в 1993-м, МиГ-25 были сняты с вооружения ещё при СССР. Ту-144 — вообще в 1978-м.

Сегодня на сверхзвук лишь _очень редко_ и _очень ненадолго_ выходят _некоторые_ типы истребителей.

Человечество расстаётся с былыми достижениями в области скоростей…
>барьер высоты, где заканчивается воздушное и начинается космос — не декларирован в законодательстве большей части стран

Зато он задекларирован в международных договорах. Всё, что ниже 100км — воздушное пространство данного государства. Что выше — космос.



Бессмысленно проводить условную границу по высоте 20км, когда у сверхзвуковых самолётов статический потолок выше, а МиГ-25 в рекордном варианте забирался почти на 38км :) (не побитый до сих пор мировой рекорд высоты для обычных самолётов)
В RTS ИИ умел уверенно обыгрывать игрока уже лет 10 назад. Например, в том же «Z». Неплохой ИИ (хотя и более примитивный) был в «KKnD2» и «Total Annihilation».

С тех пор разработка ИИ в RTS сделала явный шаг назад :) Видимо, потому что массовым игрокам с мощным ИИ играть неинтересно…
Да ещё и ввести ограничение на число потоков конверсии. А то начнут сто пользователей жать F5 на десятке новых страниц — и привет серверу :) Особенно чревата ситуация, когда N пользователей запросят одну картинку до того, как сгенерируется её превью. Запустится сразу N процессов генерации. Результат может быть весьма парадоксальным, вплоть до повреждения картинок…



Уже несколько лет пользуюсь генерацией картинок по запросу, нашёл довольно много граблей :)
Интересно. Надо же, мой сервер там тоже водится :)
1. На моей платформе нет Outlook'а. Я использую другие клиенты. При чём разные из разных мест и для разных целей.

2. Почту на web-сервере… Я даже не знаю, где такое бывает. У меня почта лежит на IMAP-сервере. Это и позволяет мне спокойно читать одну и ту же почту с разных машин и клиентов.
Для исключений достаточно очень небольшого набора литер. А в повсеместном использовании будет задействована «Е» и без того самая популярная буква русского. Если же «Ё» ставить всюду, то нужно иметь полный комплект.

В типографии для набора гранок нужно иметь достаточный набор букв для набора матрицы любого разумного текста. И чем букв меньше и выше унификация, тем меньше выходит статистический разброс.
Про телефон ты сам ответил. Skype/ICQ/MSN/etc. — слишком закрыты и нестандартны. Jabber мало распространён. Вот и выходит что для массы дел e-почта до сих пор незаменима.
В русском рукописном не практикуется расстановка точек над буквами после окончания строки :) Точки над «ё» ставятся сразу же после её написания ;)
Это издержки технологий прошлых веков. Накладно в типографском деле было содержать комплекты литер с лишней буквой. Поэтому существовал допуск — все слова с «ё», трактовка которых по тексту была однозначной, можно было писать с «е». И «ё» появлялась только для устранения неоднозначностей — «все/всё», «хрущев/хрущёв» и т.д. :)

Но сегодня на дворе XXI век, высокая печать умерла в прошлом веке, компьютеры говорят на юникоде — так что доводы против «ё» уже не соответствую времени.



А война Лебедева против «Ё» носит психологическую подоплёку. Он любит, когда его зовут Артемием и ненавидит, когда Тёмой :)
А минусы обосновать? Хотите сказать, что в России top.mail.ru менее репрезентативен, чем statcounter.com?
>Если я Вас правильно понял, то в каждом модуле придется писать что-то про используемый шаблонизатор да еще и «обучить» объекты, т.е. при написании модуля все-равно придется знать, какой шаблонизатор будет использоваться

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

>В моем случае предполагается, что у всех объектов, несущих в себе контент, будут одни и те же методы для получения этого контента (например, getValue (property)).

Да, но что делать, если один объект рисуется через Smarty, другой — через XML, третий — чистым PHP? Если один объект — HTML-страница, а другой — RSS-фид? В этом случае нужно явно указать особенность.

Скажем, у меня традиционно шаблонизатор по умолчанию — это Smarty. У базового для всех представляемых объектов классе base_object есть метод body_engine, который по умолчанию возвращает 'body_page' — это историческое имя Smarty-based шаблонизатора. Если шаблоны на Smarty, то мне не требуется указывать это явно. Если, скажем, нужна скорость и мы используем в качестве шаблонизатора чистый PHP, то у моего модуля переопределяется этот метод как «function body_engine() { return 'body_php'; }». И всё. После этого шаблон ищется не в одноимённом рядом лежащем с классом *.html файле с шаблоном, а в *.tpl.php :)

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность