Недавно вышло много обновлений Windows Azure. Среди них долгожданная поддержка Cross-Origin Resource Sharing для хранилищ. Я плотно использую в работе blob-storage (файловое хранилище) и в этом посте опишу как сделать загрузку файлов простой и приятной.
Alexander Kouznetsov @unconnected
Пользователь
Кэширование в Windows Azure
7 мин
3.7KТуториал
Проблема кэширования встает перед любым высоконагруженным приложением. В Windows Azure, где основным алгоритмом увеличения производительности является добавление экземпляров приложения, роль кэша становится еще более важной, т.к. с его помощью можно обеспечить «общую память» для всех экземпляров.
+11
Аспектно-ориентированное программирование: изучи и сделай сам!
17 мин
58KПеревод
Статья родилась из того, что мне потребовался удобный и простой механизм перехвата для некоторых задач, который легко реализуется техниками АОП. Существует довольно много перехватчиков (Casle.net, Spring.net, LinFu и т.д.), требующих внедрять динамические дочерние классы в IL-код во время исполнения и приводящих практически всегда к одним и тем же ограничениям, накладываемым на перехватываемые классы: не статические, не запечатанные, методы и свойства должны быть виртуальными и т.д…
Другие механизмы перехвата требовали изменения процесс сборки или покупки лицензии. Ни то ни другое я себе позволить не мог…
Другие механизмы перехвата требовали изменения процесс сборки или покупки лицензии. Ни то ни другое я себе позволить не мог…
+33
Чтоб ты жил на донейты!
5 мин
76KОпять подняли вой про злых правообладателей. Сейчас поводом стало то, что Лопуховым впаяли по 4 года условно, и на подходе к ним гражданские иски на возмещение ущерба. На этих бедолаг всем, в общем-то наплевать, а поводом для воя послужила заявленная обвинением сумма ущерба – 38 миллиардов рублей. И опять началось – цена должна быть честной, доступной, адекватной; незачем кормить копирастов, надо донейтить авторов; долой двд, даёшь цифровую дистрибуцию (за честную цену конечно же).
Поскольку кино я смотрю редко, а если и смотрю, то либо в кинотеатре, либо в телевизоре – проблемы Голливуда и Михалкова меня волнуют мало. Потому разговор пойдёт не про фильмы.
Поскольку кино я смотрю редко, а если и смотрю, то либо в кинотеатре, либо в телевизоре – проблемы Голливуда и Михалкова меня волнуют мало. Потому разговор пойдёт не про фильмы.
+42
Прагматичный подход к производительности
7 мин
2.3KПеревод
Является преждевременная оптимизация дорогой в ад? Или подход «потом исправим» превращает программистов из «специалистов» в презираемую всеми «школоту»?
Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
+59
Chess@home: создаем крупнейший шахматный ИИ
6 мин
6.2KПеревод
Многие знакомы с проектом Seti@home: мощнейшей инициативой по поиску следов внеземных цивилизаций в океане данных, получаемых с неба, с использованием мощностей миллионов компьютеров по всему земному шару («матрицы»).
Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
+66
SCLOG: велосипед со всеми признаками языка программирования
2 мин
1.1KКогда мы добрались до разработки системы пользовательских фильтров (или условий), Миша, наш главный по интерфейсам, завис. Он задумчиво смотрел в окно и курил одну за другой, иногда срывался и начинал молотить по груше, крича что-то нецензурное. Вообще, задача у него была непростая: на последнем совещание было решено, что заставлять пользователей создавать правила в текстовом виде – негуманно и неинтуитивно.
+13
IndexedDB: пробуем готовить
7 мин
22KIndexedDB – стандарт хранения больших объемов структурированных данных на клиенте – был ожидаем также как и WebSocket (ну может самую малость меньше). В свете выхода FireFox 4 я нашёл время и силы всё-таки разобраться, как им пользоваться, и попытаться написать что-то больше, чем пример с адресной книгой, гуляющий по интернетам (в процессе поиска информации у меня сложилось впечатление, что это был единственный пример).
+43
Черные разработчики: уволенные программисты возвращаются… с дьявольским кодом
3 мин
7.2KПеревод
Программистов увольняют по разным причинам, иногда, весьма странным.
Но в отношении разработчиков важно другое: они могут отплатить своему бывшему работодателю очень серьезно, что вряд ли доступно большинству других профессий. Полно историй про то, как разработчики распространяли вирусы, уничтожали данные, воровали секреты и устраивали различные электронные беспорядки, сразу же после того, как им показывали на дверь.
Пройдемся же по аллее славы светлых разработчиков (или просто компьютершиков с хорошими способностями), которые перешли на темную сторону силы.
Но в отношении разработчиков важно другое: они могут отплатить своему бывшему работодателю очень серьезно, что вряд ли доступно большинству других профессий. Полно историй про то, как разработчики распространяли вирусы, уничтожали данные, воровали секреты и устраивали различные электронные беспорядки, сразу же после того, как им показывали на дверь.
Пройдемся же по аллее славы светлых разработчиков (или просто компьютершиков с хорошими способностями), которые перешли на темную сторону силы.
+80
Самый страшный код в моей жизни
3 мин
9.1KПеревод
Большинство проектов, над которыми работал, довольно быстро стираются из памяти. Но некоторые запоминаешь по гроб жизни. О таком дальше и пойдет речь.
Случилось это давным-давно в одной компании, имя которой называть не станем. Нужно было поработать с кодом программы, являющейся ядром учетной системы и полностью написанной и сопровождаемой парнем, которого только что уволили.
В общем-то, ничего необычного, частенько компании обнаруживают, что важные знания содержаться в одной единственной голове, только когда что-нибудь случается с её владельцем. Как правило, проходит несколько дней в легкой панике и яростном чтении документов, и жизнь входит в своё русло.
Случилось это давным-давно в одной компании, имя которой называть не станем. Нужно было поработать с кодом программы, являющейся ядром учетной системы и полностью написанной и сопровождаемой парнем, которого только что уволили.
В общем-то, ничего необычного, частенько компании обнаруживают, что важные знания содержаться в одной единственной голове, только когда что-нибудь случается с её владельцем. Как правило, проходит несколько дней в легкой панике и яростном чтении документов, и жизнь входит в своё русло.
+102
Скорость разработки
4 мин
4.6KПеревод
«Объясни мне, что это за фигня!»
Алиса, новый сотрудник, бросила пачку документов Джимми на клавиатуру, и нависла над ним, скрестив руки.
Он нажал «отмену» и взглянул на документы. Это было полное описание ERP-системы с грифом «высокой важности» — новая инициатива менеджеров, за которую они были щедро вознаграждены, требующая от программистов «инвестировать» в собственный труд.
«Для первого проекта весьма амбициозно» — сказал он. «Может, стоит начать с задачи попроще, чтобы вначале узнать наш код?»
Алиса, новый сотрудник, бросила пачку документов Джимми на клавиатуру, и нависла над ним, скрестив руки.
Он нажал «отмену» и взглянул на документы. Это было полное описание ERP-системы с грифом «высокой важности» — новая инициатива менеджеров, за которую они были щедро вознаграждены, требующая от программистов «инвестировать» в собственный труд.
«Для первого проекта весьма амбициозно» — сказал он. «Может, стоит начать с задачи попроще, чтобы вначале узнать наш код?»
+100
За пределами HTML5: API к базам данных и путь к IndexedDB
4 мин
6.5KПеревод
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
Куда должна быть направлена стрелка входящего вызова в неком сферическом интерфейсе в вакууме?
1 мин
20K+22
Взаимодействие звеньев и их изоляция. Часть 2
4 мин
1.7KПеревод
Продолжение статьи «Взаимодействие звеньев и их изоляция.» часть 1
Хочу извиниться перед общественностью за то, что разбил статью на две части. Но в последнее время большие тексты перестали приниматься Хабром. Если кто-то подскажет как с этой напастью справиться: буду благодарен.
Хочу извиниться перед общественностью за то, что разбил статью на две части. Но в последнее время большие тексты перестали приниматься Хабром. Если кто-то подскажет как с этой напастью справиться: буду благодарен.
+24
Взаимодействие звеньев и их изоляция. Часть 1
5 мин
4.5KПеревод
Логические звенья в n-звенных системах должны проектироваться так, чтобы они взаимодействовали и подвергались влиянию только соседних звеньев. Данное ограничение зачастую нарушается, что негативно влияет на систему. В этой статье я расскажу почему так обычно случается, о последствиях, и почему следует уделять большое внимание изоляции слоев.
Статья посвящена основам и является детальным их описанием. Следующие статьи с подробными примерами будут основываться на ней. Данная статья построена на принципах, которые мы обсуждали в «Где наша бизнес-логика, сынок?» («Dude, where's my business logic?»).
Статья посвящена основам и является детальным их описанием. Следующие статьи с подробными примерами будут основываться на ней. Данная статья построена на принципах, которые мы обсуждали в «Где наша бизнес-логика, сынок?» («Dude, where's my business logic?»).
+36
Ужаснейший способ тарификации. Который работает
5 мин
5.7KПеревод
Представляю вам способ формирования цены, который выглядит как самая тупая ошибка нуба.
Назовем его «заполните пустой счёт». Или «заплатите, сколько считаете нужным».
Идея в том, что вначале вы выполняете заказ, а потом позволяете заказчику решить, сколько за него заплатить.
Понимаю, кажется, что в итоге придется работать за копейки и еду. Я тоже так думала.
Но на самом деле, это довольно оригинальная тактика, которой должен уметь пользоваться любой фрилансер, когда ветер дует в нужную сторону. (Заметьте, я сказала «когда ветер дует в нужную сторону». Мы вернемся к этому позже.)
Назовем его «заполните пустой счёт». Или «заплатите, сколько считаете нужным».
Идея в том, что вначале вы выполняете заказ, а потом позволяете заказчику решить, сколько за него заплатить.
Понимаю, кажется, что в итоге придется работать за копейки и еду. Я тоже так думала.
Но на самом деле, это довольно оригинальная тактика, которой должен уметь пользоваться любой фрилансер, когда ветер дует в нужную сторону. (Заметьте, я сказала «когда ветер дует в нужную сторону». Мы вернемся к этому позже.)
+124
Фатальный выбор
8 мин
2.4KПеревод
В своей предыдущей статье (en), я рассказывал об истории японского проекта вычислительных систем пятого поколения, запущенного под звон фанфар в 1982 и почившего в 1992, прихватив с собой логическое программирование. В этой я расскажу о том, как в качестве языка для систем пятого поколения был выбран Пролог, вместо более очевидного Лиспа. Мне интересен феномен людей, способных формировать приверженцев того или иного языка. Надеюсь, в этой статье я смогу объяснить его.
+48
Бесплатный сыр бывает вкусным
4 мин
1.5KСадитесь рядом. Садитесь, это будет долгая история. Я и сам не знал, насколько долгая, когда начинал ее рассказывать.
Вы любите страшные сказки? Я — нет. Во всяком случае, мне так казалось.
Но нам редко дано делать лишь то, что мы любим.
Главное, что следует запомнить вначале — эта сказка не о вас. Она могла случиться, и она может случиться, но только не с вами.
Вы в безопасности, в мире, который тверд и надежен. Вас нет в этой сказке, и если даже вам покажется обратное — вы ошиблись. Поверьте.
И если вы дочитаете до конца, а нечто темное коснется вас — не пугайтесь. Просто страшная сказка, которую рассказывают страшные люди.
Эта сказка не о вас.
Сергей Лукьяненко «Осенние визиты»
Зачем компании работают? Самый распространенный ответ: чтобы заработать деньги. Это верный ответ, но не полный. Чтобы жить, человеку нужно есть, пить, дышать и осуществлять другие естественные потребности. Без еды можно какое-то время протянуть, без воды – меньшее, без воздуха – совсем чуть-чуть. Компании в этом плане похожи на людей, деньги – их пища, вода и воздух. Без них они умирают. Но как мало кто из людей видит свое предназначение только в том, чтобы посытнее пожрать, так мало какая компания ставит своей основной целью заработать побольше. Но точно так же, как большинству людей приходится в поте лица добывать себе хлеб, забыв о своём высшем предназначении, так и многие компании концентрируются на заработке, забыв о том, что принято называть модным словом «миссия».
-2
-6
Симуляция донейт в он-лайн игре
2 мин
1.5KК написанию этого топика меня подтолкнул проведенный на Хабре эксперимент. Он мне напомнил, что я симулировал различные схемы продаж в одной он-лайн игре. В данном случае речь пойдет о донейт схеме, которая вызывает немалые холивары.
В рамках эксперимента раздавались таблетки. В игре эти таблетки не то, что жизненно необходимая вещь, но позволяет чувствовать себя более комфортно. Т.е. легкодоступный товар массового потребления. Одна таблетка стоит одну (неделимую единицу денег) монету, оптом дешевле (1 монета = 3-4 таблетки).
В рамках эксперимента раздавались таблетки. В игре эти таблетки не то, что жизненно необходимая вещь, но позволяет чувствовать себя более комфортно. Т.е. легкодоступный товар массового потребления. Одна таблетка стоит одну (неделимую единицу денег) монету, оптом дешевле (1 монета = 3-4 таблетки).
+30
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность