Блог

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

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

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

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

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

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

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

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

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

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

Классы в PHP

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

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

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

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

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

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

Программирование под Mac OS X

Блин, времени вообще капитально не хватает. Скачал себе Mono и XCode, а попробовать программировать под Mac OS X все нет времени. Работы куча, да еще и заболел. Уже несколько дней чувствую себя как не очень здоровый (телом, а не о том, о чем мечтают некоторые) человек. Думал заняться тестированием сред разработки под Apple в метро, пока еду на работу, но что-то никак не выходит.

Но то, что уже скачал и установил Mono и XCode – это уже большой шаг в будущее. Как только появится свободная минутка, обязательно попробую. Причем нужно начать пробовать с Mono, там же уже знакомый мне .NET. В XCode и его объектном С я вообще не в зуб ногой. Только слышал о том, что он капитально отличается от классического С++, который используется в окнах и Linux.

P.S. Книжек по программированию под Msc OS X не будет.

Оптимизация размера Web кода

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

Лично я уже давно не забочусь о компактности, когда пишу HTML код. Мне главное, чтобы мне было удобно сопровождать мой код. А то, что пользователю приходится качать пару сотен лишних пробелов в HTML мне все равно. Это всего лишь сотни байт (умноженное на среднее 1.5 из-за UTF-8), которые для современных скоростей ничего не значат. Картинки на сайтах весят сейчас сотни килобайт и именно их нужно оптимизировать.

А ты думаешь о компактности и экономишь на пробелах, когда пишешь HTML код или JavaScript функции?

Странная ошибка JavaScript в FireFox

Я уже много раз говорил, что люблю Firefox за то, что он удобен для разработки. Я обожаю его использовать, когда нужно отлаживать JavaScript. Сегодня как раз работал дома над javascript функцией и запустил окошко Error Console. Я всегда его запускаю, чтобы сразу были видны любые ошибки. Даже те, которые не показываются браузером как критичные. Попробуйте открыть это окно и подержать открытым, и вы увидите на большом количестве крупных сайтов ошибки JavaScript. Сайты эти вроде бы работают, но генерят ошибки. Я вот такого не люблю у себя и люблю чистоту, поэтому вылавливаю косяки и чищу их.

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

Нечего писать

Сегодня что-то ничего не хочу писать. Нет такой темы для заметки, которую бы прямо хотелось обсудить. А когда нечего писать, я выкладываю какие-то очень интересные материалы. Сегодня это будет очередная часть книги по Transact-SQL: Индексы в SQL Server

Программирование для iPhone

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

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

О блоге

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

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

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

Пишите мне