Блог

Книга Transact-SQL бесплатно

Продолжаю выкладывать Transact-SQL в подлиннике на халяву. Сегодня на свет появляется часть про первичный и внешний ключ. Немного скучноватые могут быть темы, но очень важные. Особенно про внешние ключи. Я замечал, что в России внешники ключами очень сильно пренебрегают. Их иногда не используют только потому, что с ними сложнее удалять. Это ошибка, всегда пользуйтесь ими, потому что выгоды на много больше.

Классы в PHP

Я как-то писал, что не использую классы в PHP и все сайты, которые я сделал были написать в банальном плоском режиме. Но на PHP я ничего круче блога и небольших форумов пока и не писал. Самые крупные сайты, над которыми я работал, были на C#.

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

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

Не знаю почему, но для маленьких сайтов и небольших задач не люблю использовать классы, а пишу все процедурно. А ты используешь классы в PHP? Вопрос конечно же тем, кто знает и использует PHP.

Создание таблиц в Transact-SQL

Продолжаю выкладывать книгу по Transact-SQL. Следующая часть создание таблиц в Transact-SQL.

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

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

Статьи по программированию

Давно я не обновлял hackishcode. На этой неделе на нем появилось сразу две статья: Monitoring Executable Files и Disclosing Passwords. Если кто читал книги серии глазами хакера, то эти примеры уже видел. В данном случае перед нами примеры на C++. Правда заметки на английском, но многих это не останавливает. Как показывает практика, большинство программистов знает английский, или хотя бы умеет читать.

Что мне нравится в программировании

Обожаю оптимизацию. На работе я поддерживаю практически банковскую базу данных (да почему "почти", она и есть бансковская) и работать приходится с сотнями тысяч транзакций миллионов пользователей. На данный момент в основной таблице онлайн транзакция находиться 170 482 890 записей и все это тянется на одном только MS SQL сервере не первой свежести (извините, не могу сказать точно версию) и всего лишь парой гигабайт оперативной памяти. Клиент собирается обновить свое железо, но пока не известно точно когда это будет.

И вот чтобы выжать из существующего старья максимум возможного, приходится работать на оптимизацию. Последние пол года я только и занимаюсь тем, что оптимизирую запросу и код работы с базой данных. Пришлось в одном месте денормализовать базу данных, чтобы она шуршала повеселее, правда денормализация стоит лишними обновлениями данных и поддержкой лишних данных. Мне нравится оптимизация тем, что каждый день приходится бороться придумать что-то новое, чтобы твоя программа работала как можно быстрее и не тормозила на каждом повороте. Тут уже не напишешь говнокода, который "лишь бы работал" и нужно кропотливо проверять все 10 и более раз, прежде чем один раз резануть по живому.

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

Gantt Chart Control .NET

Давно я не обновлял свои компоненты, потому что не было времени, но обновления есть, они не могут не есть. Сейчас я занялся обновлением всех своих компонентов. Сегодня на свет выходит Gantt Chart Control .NET. В нем пока изменений, не много, но очень интересные: теперь ты можешь не только перетаскивать работы по рабочей форме, но и изменять размер с помощью мышки. Ну а так же появилась возможность включить подсказки, и при наведении на работу будет появляться подсказска с заголовком и описанием работы.

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

Объединение строк в одну в SQL

В SQL Server почему-то народ часто сталкивается с проблемой объединения значений нескольких строк в одну. Например, допустим, что есть запрос:

SELECT ColumnName
FROM TableName

Допустим, что запрос возвращает три строки:

 Иванов
 Петров
 Сидоров

А теперь допустим, что ты хочешь вывести результат не в виде трех строк, а в виде одной строки. И еще хуже, в виде одной колонки, да еще и связать с результатом другого запроса. Самый простейший вариант - написать хранимую процедуру, которая будет читать данные с помощью курсора, объединять их в одну переменную и возвращать результат в виде varchar значения. Простое решение, но не единственное. Иногда просто нельзя писать процедуру.

Форум для программистов

Меня как-то спрашивали, почему-бы не сделать на сайте регистрацию и не развить сайт до чего-то более крупного, что будет включать форум и другие сервисы. Зачем делать что-то очередное, когда уже полно подобных решений. Например, на мой взгляд лучший форум программистов - это www.programmersforum.ru.

Я не собираюсь конкурировать с существующими решениями, тем более что мне самому нравится этот форум. Я даже на нем когда-то был зарегистрирован. А почему когда-то, я до сих пор там зарегистрирован. Просто времени нету сейчас заходить и болтать с народом. Но когда работал в России, то у меня было достаточно времени в рабочее время иногда общаться с народом. Ну а на programmersforum.ru всегда было приятно поболтать с народом. На удивление там собралось много отличных программистов, которые помогают друг-другу, а именно это основная задача форума.

Самое главное, что программисты на programmersforum.ru не набрасываются на новичков, как стервятники, как это бывает на некоторых форумах, где сидят зазнавшиеся бакланы. На мой взгляд это очень важно.

Магия компилирования .NET

На работе мы обычно запускаем программы в cygwin, и никаких проблем я не видел. Но сегодня, произошла магия компиляции. Я собрал минимальное приложение, которое читает из файла построчно информацию, и передает в функцию, в которой читаются примерно первые 20 символов для поиска данных в базе. Все прекрасно работало, и я залил исполняемый файл на рабочий сервер. Запускаю, наблюдаю, и вижу, что какая-то лажа. Программа явно не прочитала данные из файла.

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

Внес небольшое изменения на сервере, где я компилирую, и программа перестала и там работать корректно. Проблема в том, что на этих серверах нет ничего для отладки. Пробую запустить в командной строке Windows, и о чудо, программа работает отлично. Пробую то же самое на рабочем сервере, и XYZ в сраку два в уме. Программа так и не работает. Она вроде бы как что-то делает, но результат нулевой.

Программирование дома

На работе так много программирую на C#, что когда прихожу домой, уже совершенно не хочется этим заниматся. Чтобы разнообразить мир, дома программирую только на PHP, а когда впоследний раз запускал Visual Studio уже и не помню. Пару раз пытался заставить себя пересилить и начать дома писать, но не могу. В основном пишу заметки для сайтов, улучшаю сайты на PHP, а дальше загрузки Visual Studio дома руки не идут.

А ты дома можешь писать на том же языке программирования, что и на работе? Не достало?

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне