Очередной вопрос от читателя:
Михаил интересно ваше мнение об 1с и возможно ли его развитие до полноценного языка или же он так и будет относиться к попсовым??
А он и не создавался как полноценный язык. С точки зрения бухгалтерии для создания бухгалтерских модулей для 1C это офигенная весчь По крайней мере на много лучше JDEdwards от Oracle. Я вообще нормально отношусь к 1С, потому что это очень хорошая система и создается нормальными российскими программистами, а не индусами. Я как-то работал с ней и вполне был доволен.
Очередной вопрос, который упал в мой ящик:
ЭТО ПРАВДА ЧТО ИГРЫСЛОЖНО ДЕЛАТЬ И ТРЕБУЮТ ВЫСОКОЙ КЛАФИКАЦИИ
Не знаю, зачем автор все написал большими буквами, потому что остальное в письме было нописано нормально, но это и не важно. Игры создавать не сложно особенно тетрисы. А квалификация нужна в зависимости от сложности игры, которую ты создаешь. Для 3D шутера желательно конечно же хорошие знания. Хотя DirectX сильно все упрощает и программирование игр стносится все доступнее, искусственный интеллект писать не так уж и просто.
В зависимости от игры могут понадобиться разные знания. Опять же, если делать плоскую стратегию, то можно забить на многие законы физики (не на все, но на многие), потому что мир у вас будет плоским. Ну а для тех же 3D шутеров на физику класть не стоит. Пользователь просто не простит.
Новая рубрика на сайте. Теперь буду регулярно выкладывать на сайт ответы на самые интересные ваши письма. Имен и координат авторов писем конечно же выкладывать не буду. Сегодня эту честь предоставляю следующему письму:
Здравствуйте Михаил.Мне 19 лет,я изучаю программирование(самоучка).Всем известно,что без практики познать невозможно практически ничего.Вопросов по программированию у меня нету(всё что читаю всё понимаю),но когда хочется по практиковаться,то в голову абсолютно ничего не лезет.Посоветуйте,что нибудь по этому поводу.Как изучали вы?
Продолжая тему оптимизации SQL запросов. Есть таблица пользователей и есть запрос, который ищет по этой таблице:
SELECT поля FROM Members WHERE LastName LIKE @lastname and PostalCode = @postalcode
Индекс на поле LastName существует и работает. Если в качестве параметра передать 'Doe%', то запрос возвращает строки мгновенно и без проблем. Но стоит передать в качестве параметра 'rodriguez%' как запрос умирает напрочь. Умирает только на этой фамилии. Я тестировал сотни других, но они работают отлично.
Иногда часто после создания объекта нужно сразу же назначить кучу его свойств. Такое бывает если класс спроектировал начинающий программист или если класс реально сложный, типа формы. Если класс простой и оперирует всего парой свойств, то желательно создавать конструктор, который будет сразу же инициализировать все необходимые значения. Например, посмотрим на класс Size. Его можно проинициализировать так:
Size s = new Size(); s.Width = 10; s.Height = 10;
А можно воспользоваться другим конструктором:
Кто-то через обратную форму задал вопрос, но забыл подписаться и оставить e-mail, на который я бы мог отправить ответ. Ну значит придется писать здесь. Вопрос следующий:
возможно ли использовать swf картинки в Делфи как кнопки?
Понятия не имею. Последняя версия Delphi, с которой я работал - была Delphi 2007 и продолжалось это всего три месяца. При этом я особо даже не вникал в эту версию и что она умеет.
Сори, но некогда писать. Второй день занимаюсь жестокой оптимизацией запросов. Один SELECT запрос выполняется очень часто и из-за пидxxxxxxеского SQL Server приводит к deadlock. Впервые вижу, чтобы SELECT запрос приводит к мертвой блокировке. Я все видел, но чтобы доводить до смерти. Это же банальное чтение данных, какого черта взаимноблокировать чтение.
Только что нашел проблему. Простая перестановка последовательности WHEN в CASE операторе уронила количество сканирований таблицы с 205000 до 18.
В PHP меня бесит то, что в нем конкатенация строк происходит через точку. Когда фигачиш кучу кода на PHP, а потом в том же файле переключаешся на JavaScript и в JavaScript функции пишешь 'Строка 1' . 'Строка 2', то этот код не работает, и ошибок нигде нет. JavaScript не генерирует ошибки, а на фоне большого кода PHP такая небольшая опечатка не кидается в глаза.
Кто знает, нафига в PHP сделали конкатенацию через точку? Лично мне кажется, что это сделано из-за автоматического преобразования. Если написать '22' + '22', то не смотря на то, что перед нами строки, они будут сложены как числа. И иногда это удобно, но все равно точка бесит, потому что во всех остальных языках, которые я исползую, конкатенация идет через символ сложения.
Вчера на работе в основном занимался тестированием сайта через различные прокси и оптимизацией запросов. Перед самым новым годом работы нет, поэтому подчищаем сайт.
Один из запросов выполнялся 20 и более минут, хотя на все поля, по которым происходит поиск индексы есть. Даже не смотря на то, что одна из таблиц оооооччччень громадная, запрос не должен работать так долго. Это просто нереально.
Поступил инетерсный вопрос - как округлить дату или время с помощью SQL запросов. Я почему-то эту тему в книге Transact-SQL обошел, поэтому расскажу здесь
Если нужно просто обрубить дату, то можно поступить так:
select dateadd(day, datediff(day, 0, GetDate()), 0)
Где-то я видел пример, в котором автор зачем-то прибавлял и отнимал дату '20000101':
select dateadd(day, datediff(day, '20000101', GetDate()), '20000101')
Результат идентичный предыдущему, а смысла в действии я не понял