• Как можно взломать свой же Web проект?


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


      Давайте я расскажу «историю неуспеха», чтобы другие на эти грабли не наступали.

      Читать дальше →
    • Google, куда ты дел моё место в GMail? А вы точно знаете, как в GMail работают ярлыки?


        Стал я замечать, что из 15 гигабайт бесплатного месте, предоставленного Google, у меня почта занимает уже почти 12 гигабайт. И такая тенденция меня не радует.
        С другой стороны я в качестве почтового клиента использую Thunderbird с полной синхронизацией. Т.е. все письма должны быть закачены. Так вот папка Thunderbird со всеми письмами и индексами занимает всего 3 гигабайта. Хотя по логике вещей размер должен не просто более менее совпадать с занятым местом на GMail, а быть побольше, т.к. Thunderbird не архивирует письма, а хранит как есть и еще индексы строит для ускорения поиска.
        Проблема на лицо! Начинаем докапываться до сути.
        Читать дальше →
      • Что дешевле: новое железо или труд разработчиков?

          На данную статью меня сподвиг следующий пост «Как улучшить свой стиль программирования?» плюс недавний спор среди коллег.

          Представьте себе такой диалог:

          Админ: Господа, разработчики, ваш код на сервере стал поедать много оперативки. Сервер уже свопиться начинает. Сами понимаете, все может встать колом!
          Представитель разработчиков (например, тимлид): Блин, беда. Сейчас займемся проблемой.
          Эй, команда, нас тут админы стыдят за неоптимальный код. Нужно срочно все бросить и оптимизировать старый код.
          Менеджер проекта: Эй, вы куда? Какая оптимизация? Пусть админы докупят памяти в сервера и проблемы нет. А у вас вон кучу нового функционала нужно разработать. Никакой оптимизации! Сосредоточьтесь на новом функционале. Нам нужно опередить конкурентов с новыми фичами. Потом как-нибудь оптимизируете свой код.

          И кто по вашему прав? Что нужно сделать? Сделать апгрейд железа или заняться оптимизацией?
          В конце статьи будет голосование.
          Читать дальше →
        • MongoDB: $or VS $in — что работает быстрее?

            По катом будет совсем небольшое сравнение производительности MongoDB в случаях использования $or и $in логических операций в запросах. Надеюсь, что данная заметка сэкономит кому-нибудь рабочее время.
            Читать дальше →
          • Так какой же у Clodo SLA?

              Все началось с того, что частые проблемы с хостингом виртуального сервера в Clodo, а именно в датацентре «KIAEHOUSE», стали напрягать. Но эта статья совсем не об этом. Я хочу рассказать, как мы пытались понять, есть у Clodo SLA или нет.
              Читать дальше →
            • Как я однажды преподавал программирование не как все

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

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

              А хочу я поделиться тем, как, на мой взгляд, стоит строить обучение программированию.
              Читать дальше →