• Windows Azure Blob-storage: поддержка CORS

    • Tutorial
    Недавно вышло много обновлений Windows Azure. Среди них долгожданная поддержка Cross-Origin Resource Sharing для хранилищ. Я плотно использую в работе blob-storage (файловое хранилище) и в этом посте опишу как сделать загрузку файлов простой и приятной.
    хочу стать счастливым
    • +14
    • 4,9k
    • 3
  • Кэширование в Windows Azure

    • Tutorial
    Проблема кэширования встает перед любым высоконагруженным приложением. В Windows Azure, где основным алгоритмом увеличения производительности является добавление экземпляров приложения, роль кэша становится еще более важной, т.к. с его помощью можно обеспечить «общую память» для всех экземпляров.
    что же делать
    • +11
    • 3,3k
    • 1
  • Аспектно-ориентированное программирование: изучи и сделай сам!

    • Перевод
    Статья родилась из того, что мне потребовался удобный и простой механизм перехвата для некоторых задач, который легко реализуется техниками АОП. Существует довольно много перехватчиков (Casle.net, Spring.net, LinFu и т.д.), требующих внедрять динамические дочерние классы в IL-код во время исполнения и приводящих практически всегда к одним и тем же ограничениям, накладываемым на перехватываемые классы: не статические, не запечатанные, методы и свойства должны быть виртуальными и т.д…

    Другие механизмы перехвата требовали изменения процесс сборки или покупки лицензии. Ни то ни другое я себе позволить не мог…
    а дальше было...
    • +33
    • 42,9k
    • 8
  • Чтоб ты жил на донейты!

      Опять подняли вой про злых правообладателей. Сейчас поводом стало то, что Лопуховым впаяли по 4 года условно, и на подходе к ним гражданские иски на возмещение ущерба. На этих бедолаг всем, в общем-то наплевать, а поводом для воя послужила заявленная обвинением сумма ущерба – 38 миллиардов рублей. И опять началось – цена должна быть честной, доступной, адекватной; незачем кормить копирастов, надо донейтить авторов; долой двд, даёшь цифровую дистрибуцию (за честную цену конечно же).

      Поскольку кино я смотрю редко, а если и смотрю, то либо в кинотеатре, либо в телевизоре – проблемы Голливуда и Михалкова меня волнуют мало. Потому разговор пойдёт не про фильмы.
      а про книги
    • Прагматичный подход к производительности

      • Перевод
      Является преждевременная оптимизация дорогой в ад? Или подход «потом исправим» превращает программистов из «специалистов» в презираемую всеми «школоту»?

      Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
      Читать дальше →
    • Chess@home: создаем крупнейший шахматный ИИ

      • Перевод
      Многие знакомы с проектом Seti@home: мощнейшей инициативой по поиску следов внеземных цивилизаций в океане данных, получаемых с неба, с использованием мощностей миллионов компьютеров по всему земному шару («матрицы»).

      Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
      Читать дальше →
    • SCLOG: велосипед со всеми признаками языка программирования

        Когда мы добрались до разработки системы пользовательских фильтров (или условий), Миша, наш главный по интерфейсам, завис. Он задумчиво смотрел в окно и курил одну за другой, иногда срывался и начинал молотить по груше, крича что-то нецензурное. Вообще, задача у него была непростая: на последнем совещание было решено, что заставлять пользователей создавать правила в текстовом виде – негуманно и неинтуитивно.
        Читать дальше →
      • IndexedDB: пробуем готовить

          IndexedDB – стандарт хранения больших объемов структурированных данных на клиенте – был ожидаем также как и WebSocket (ну может самую малость меньше). В свете выхода FireFox 4 я нашёл время и силы всё-таки разобраться, как им пользоваться, и попытаться написать что-то больше, чем пример с адресной книгой, гуляющий по интернетам (в процессе поиска информации у меня сложилось впечатление, что это был единственный пример).
          что из этого вышло
        • Черные разработчики: уволенные программисты возвращаются… с дьявольским кодом

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

          Пройдемся же по аллее славы светлых разработчиков (или просто компьютершиков с хорошими способностями), которые перешли на темную сторону силы.
          Читать дальше →
        • Самый страшный код в моей жизни

          • Перевод
          Большинство проектов, над которыми работал, довольно быстро стираются из памяти. Но некоторые запоминаешь по гроб жизни. О таком дальше и пойдет речь.

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

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

          • Перевод
          «Объясни мне, что это за фигня!»

          Алиса, новый сотрудник, бросила пачку документов Джимми на клавиатуру, и нависла над ним, скрестив руки.

          Он нажал «отмену» и взглянул на документы. Это было полное описание ERP-системы с грифом «высокой важности» — новая инициатива менеджеров, за которую они были щедро вознаграждены, требующая от программистов «инвестировать» в собственный труд.

          «Для первого проекта весьма амбициозно» — сказал он. «Может, стоит начать с задачи попроще, чтобы вначале узнать наш код?»
          Читать дальше →
        • За пределами HTML5: API к базам данных и путь к IndexedDB

          • Перевод
          IndexedDB – развивающийся веб-стандарт для хранения значительных объемов структурированных данных в браузере и осуществления высокопроизводительного поиска по данным с помощью индексирования. Mozilla внесла значительный технический вклад в эту спецификацию, и мы планируем реализовать её в Firefox 4 (поддерживается в FF RC4 — прим. пер.). Мы общались с известными веб-разработчиками на предмет внедрения элегантного API для хранения структурированных данных в веб. Safari, Chrome и Opera поддерживают технологию Web SQL Database, использующую SQL-запросы, которые передаются строковыми аргументами в JavaScript API; нам же кажется, что эстетическая составляющая разработки тоже заслуживает внимания, а подобное решение является не очень элегантным для клиентских веб-приложений. Мы донесли мнение разработчиков до редактора спецификации IndexedDB, и пообщались с Microsoft, которая отметила, что IndexedDB была бы не плохим решением для веба. С маячащими на горизонте реализациями от команды Chrome, нам кажется необходимым объяснить наш выбор архитектуры и то, почему нам кажется, что IndexedDB является лучшим решением для веб нежели Web SQL Database.

          Читать дальше →
          • +11
          • 5,7k
          • 3
        • Взаимодействие звеньев и их изоляция. Часть 2

          • Перевод
          Продолжение статьи «Взаимодействие звеньев и их изоляция.» часть 1

          Хочу извиниться перед общественностью за то, что разбил статью на две части. Но в последнее время большие тексты перестали приниматься Хабром. Если кто-то подскажет как с этой напастью справиться: буду благодарен.
          Читать дальше →
        • Взаимодействие звеньев и их изоляция. Часть 1

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

          Статья посвящена основам и является детальным их описанием. Следующие статьи с подробными примерами будут основываться на ней. Данная статья построена на принципах, которые мы обсуждали в «Где наша бизнес-логика, сынок?» («Dude, where's my business logic?»).
          Читать дальше →
        • Ужаснейший способ тарификации. Который работает

          • Перевод
          Представляю вам способ формирования цены, который выглядит как самая тупая ошибка нуба.
          Назовем его «заполните пустой счёт». Или «заплатите, сколько считаете нужным».

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

          Но на самом деле, это довольно оригинальная тактика, которой должен уметь пользоваться любой фрилансер, когда ветер дует в нужную сторону. (Заметьте, я сказала «когда ветер дует в нужную сторону». Мы вернемся к этому позже.)
          Делается это так.
        • Фатальный выбор

          • Перевод
          В своей предыдущей статье (en), я рассказывал об истории японского проекта вычислительных систем пятого поколения, запущенного под звон фанфар в 1982 и почившего в 1992, прихватив с собой логическое программирование. В этой я расскажу о том, как в качестве языка для систем пятого поколения был выбран Пролог, вместо более очевидного Лиспа. Мне интересен феномен людей, способных формировать приверженцев того или иного языка. Надеюсь, в этой статье я смогу объяснить его.
          Читать дальше →
        • Бесплатный сыр бывает вкусным

            Садитесь рядом. Садитесь, это будет долгая история. Я и сам не знал, насколько долгая, когда начинал ее рассказывать.
            Вы любите страшные сказки? Я — нет. Во всяком случае, мне так казалось.
            Но нам редко дано делать лишь то, что мы любим.
            Главное, что следует запомнить вначале — эта сказка не о вас. Она могла случиться, и она может случиться, но только не с вами.
            Вы в безопасности, в мире, который тверд и надежен. Вас нет в этой сказке, и если даже вам покажется обратное — вы ошиблись. Поверьте.
            И если вы дочитаете до конца, а нечто темное коснется вас — не пугайтесь. Просто страшная сказка, которую рассказывают страшные люди.
            Эта сказка не о вас.


            Сергей Лукьяненко «Осенние визиты»

            Зачем компании работают? Самый распространенный ответ: чтобы заработать деньги. Это верный ответ, но не полный. Чтобы жить, человеку нужно есть, пить, дышать и осуществлять другие естественные потребности. Без еды можно какое-то время протянуть, без воды – меньшее, без воздуха – совсем чуть-чуть. Компании в этом плане похожи на людей, деньги – их пища, вода и воздух. Без них они умирают. Но как мало кто из людей видит свое предназначение только в том, чтобы посытнее пожрать, так мало какая компания ставит своей основной целью заработать побольше. Но точно так же, как большинству людей приходится в поте лица добывать себе хлеб, забыв о своём высшем предназначении, так и многие компании концентрируются на заработке, забыв о том, что принято называть модным словом «миссия».
            читать страшную сказку дальше
          • Симуляция донейт в он-лайн игре

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

              В рамках эксперимента раздавались таблетки. В игре эти таблетки не то, что жизненно необходимая вещь, но позволяет чувствовать себя более комфортно. Т.е. легкодоступный товар массового потребления. Одна таблетка стоит одну (неделимую единицу денег) монету, оптом дешевле (1 монета = 3-4 таблетки).
              Читать дальше →