Буквально вчера я прочёл весьма занимательный пост PHP: a fractal of bad design (русский вариант на хабре — прим. перев.). Этот неоднозначный и провокационный топик широко обсуждается всем PHP-сообществом. Честно говоря, там есть как действительно хорошие позиции и замечания, так и откровенные ошибки, не позволяющие увидеть всю картину в целом.
Белоглазов Дмитрий @XAHOK
Пользователь
Работа с Command Line в .Net
4 min
17KДобрый день сообщество,
Долгое время я был просто читателем полезных технических статей.
Думаю, что пришло и мое время написать свой первый пост. Я надеюсь, что этот пост который, будет полезен не только начинающим разработчикам .net.
Мне кажется, что этой, на первый взгляд, банальной теме уделяется мало внимания. В этой статье я хотел бы поделится опытом работы с Command Line в .Net.
Долгое время я был просто читателем полезных технических статей.
Думаю, что пришло и мое время написать свой первый пост. Я надеюсь, что этот пост который, будет полезен не только начинающим разработчикам .net.
Мне кажется, что этой, на первый взгляд, банальной теме уделяется мало внимания. В этой статье я хотел бы поделится опытом работы с Command Line в .Net.
+29
Создания сеансового ключа с использованием публичных и приватных ключей
1 min
4.8KНаглядный пример аутентификации по ключу. Похожим образом сейчас может работать много протоколов включая ssh.
+41
Рисование сеточных графиков трехмерных функций и изолиний к ним
5 min
27K
Статья представляет собой нечто вроде “практического руководства” для построения весьма интересных трехмерных графиков функций вида z=f(x,y), с примером реализации на C#.
+36
5 способов, которыми игры пытаются вызвать зависимость
10 min
190KTranslation
Итак, в новостях снова пишут, что кто-то еще умер из-за игромании. Да, опять Корея.
Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
+270
Геймдизайнерам об игроках или как программировать игроков?
7 min
13KВступление 1.
Много думал и анализировал информацию на тему разработки игр. И чтобы не потерять, а так же поделиться с людьми, получить подсказки, советы и комментарии — решил оформить и выложить статью. На сегодняшний день “геймдизайн” все больше обретает очертания некой науки, требующей особого подхода и изучения. К сожалению, в общем доступе находится очень мало структурированной информации. Что касается иностранных авторов, имеющих большой опыт и ряд успешных проектов — зачастую их труды так и не попадают на прилавки отечественных магазинов. А изучить их в оригинале многим мешает языковой барьер.
В данной ситуации спасением служат статьи, где люди делятся впечатлениям и личным опытом по разработке игр. Эти статьи не только и не столько доносят до читателей новую информацию, сколько подают ее в новом свете, позволяя более четко осознать и отобразить в жизнь.
Вступление 2
Хочу отметить, что на написание материала оказало влияние выступление на Sociality Rocks 2011 Henric Suuronen — руководитель студии Wooga, разработчика Bubble Island и других хитов. Особого внимания заслуживает статья Андрея Плахова “Геймдизайнерам о программистах или как программировать программистов”. По аналогии с той статьей возникла мысль, что программировать можно и пользователей тоже. Программировать их модель поведения, чтобы их развлекать и извлекать нужные нам ценности — платежи, удержание в игре, привлечение новых игроков. И одним из инструментов удержания служит набор функций в приложении, который можно условно назвать игровым циклом. Об этом мы и поговорим далее
+42
Эффективное управление облачными очередями (Azure Queue)
5 min
2.9KВ этой, уже четвертой, статье из цикла «Внутреннее устройство и архитектура сервиса AtContent.com» я предлагаю познакомиться с фоновой обработкой заданий с использованием экземпляров сервиса Azure (Worker Role).
В качестве основного канала коммуникации между экземплярами рекомендуется использовать очереди Azure (Azure Queue). Но использование только этого канала не позволяет максимально эффективно использовать экземпляры сервиса. Итак, в этой статье вы узнаете как

В качестве основного канала коммуникации между экземплярами рекомендуется использовать очереди Azure (Azure Queue). Но использование только этого канала не позволяет максимально эффективно использовать экземпляры сервиса. Итак, в этой статье вы узнаете как
- минимизировать задержку между отправкой задания на экземпляр и началом его обработки
- минимизировать количество транзакций к Azure Queue
- повысить эффективность обработки заданий

+4
Unity3d. Уроки от Unity 3D Student (B00-B03)
5 min
246KДобрый день. Предлагаю свой вариант перевода уроков по Unity3d от www.unity3dstudent.com
Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.
PS: А хорошо это или плохо — вопрос достаточно сложный.
В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.
Введение.
Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.
PS: А хорошо это или плохо — вопрос достаточно сложный.
В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.
+52
Фильтры данных на ASP.NET MVC и Entity Framework
12 min
23KОчень часто в различных веб-приложениях мы работаем с данными, выбранными из таблиц БД. И нередко необходимо предоставлять пользователю возможность фильтровать эти данные. Можно, конечно, для каждого случая собирать данные с формы в ручную и в ручную создавать соответствующий запрос под них. Но что если у нас 20 разных страниц, представляющих те, или иные данные? Обрабатывать в ручную все долго и не удобно, а поддерживать еще хуже. Моя версия решения данной проблемы на ASP.NET MVC + Entity Framework под катом.
+16
Яндекс.Диск — первый взгляд
4 min
65K
Утром 5 апреля Яндекс внезапно представил широкой общественности свой новый сервис — Яндекс.Диск. Запись в корпоративном блоге Яндекса обещала 10 гигабайт бесплатного места под хранение файлов, программы-клиенты под Windows и Mac OS X, мобильные приложения для iOS и Android и много-много радости детишкам любого возраста.
При этом запись не содержала ответа на самый главный вопрос — будет ли это просто склад файлов, или полноценный сервис для синхронизации вроде Dropbox. Лучший способ узнать ответ — попробовать самому. И я пошёл пробовать.
+130
Реализация exceptions на plain C
4 min
7.1KПродолжение вот этой статьи habrahabr.ru/post/131212, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.
Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
+31
Жизненный цикл Request в MVC 3 Framework приложении
7 min
8.6KЛюбой разработчик знает, что URL в маршрутизации MVC играет ключевую роль. Как известно, существует стандартная маршрутизация:
Она представляет собой правило по которым выбираются маршруты. В простейших случаях, можно поменять местами action и controller, или добавить еще множество параметров, которые будут выглядеть в url следующим образом- param1/param2/param3/. Иногда, например в CMS системах, необходимо сделать так, чтоб часть url приходила как переменная.
Это правило выделяет Action и Controller, а остальную часть присваивает переменной url.
Регистрируются Routes при старте приложения. А именно в файле Global.asax в методе Application_Start().
Для создания большинства приложений этих знаний хватает. Цель же моей статьи пройти весь жизненный цикл Request и посмотреть, что же происходит, перед тем как приложение разберет url и передаст управление нужному action.
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional );
Она представляет собой правило по которым выбираются маршруты. В простейших случаях, можно поменять местами action и controller, или добавить еще множество параметров, которые будут выглядеть в url следующим образом- param1/param2/param3/. Иногда, например в CMS системах, необходимо сделать так, чтоб часть url приходила как переменная.
routes.MapRoute(
"Default",
"{controller}/{action}/{*url}",
new { controller = "Content", action = "Home", url = UrlParameter.Optional
});
Это правило выделяет Action и Controller, а остальную часть присваивает переменной url.
Регистрируются Routes при старте приложения. А именно в файле Global.asax в методе Application_Start().
Для создания большинства приложений этих знаний хватает. Цель же моей статьи пройти весь жизненный цикл Request и посмотреть, что же происходит, перед тем как приложение разберет url и передаст управление нужному action.
+3
Менеджмент памяти в .Net Framework от Redgate
1 min
6.2K
Недавно с рассылкой от компании Redgate (это та компания, которая выпустила всем известные тулы .Net Reflector, SmartAssembly и прочие) получил бесплатную книгу «Under the Hood of .NET Memory Management». Пока что доступна только первая ее часть, но она довольно объемная и раскрывает многие аспекты менеджмента памяти. Самое вкусное обещают во второй части. Приятного скачивания (краткое содержание под катом):
- Ссылка на официальную страницу с подпиской на выход второй части
- Прямая ссылка на pdf:
Under the Hood of .NET Memory Management (Part 1)
Бонусом по первой ссылке, в том же архиве, идет книга по ANTS Memory Profiler
+25
Оптимизация для CPU: как найти черную кошку в темной комнате
9 min
27K
Метод недопустимой операции:
Разделить кошку на ноль,
после чего она станет бесконечно большой,
так что её будет невозможно упустить.
[АбсурдопедиЯ]
Пытаясь найти проблему с производительностью относительно простого кода, я вспомнил несколько нелепых методов решения, описанных на Абсурдопедии, для задачи поиска черной кошки в темной комнате. Как ни странно, мне очень помогло последовательное использование трех методов, которые можно найти по ссылке: Прагматизм, Метод дихотомии и Метод тыка.
Итак, имеем задачу последовательной перестановки байтов в каждом слове массива (big-endian <-> little-endian) и суммирования всех слов в одно (reduction). Оставим пока в стороне задачу распараллеливания, ибо ее решение близко к тривиальному, и для нас пока не представляет интереса.

+55
Инновационный сервис: запускаем стартап
3 min
1.7KЕсть отличная идея! Вы стали счастливым обладателем мозгов, которые придумали совершенно новый, никем не разработанный сервис, который покорит интернет как twitter или facebook. Однако есть, что называется, две большие разницы между инновационным сервисом и успешным стартапом. Запускать любую неведомую фигню следует с приложением всей интеллектуальной мощи организма и за пределом его физических сил.
Собственно, что и как запускать, чтобы не разориться и не провалиться?
Собственно, что и как запускать, чтобы не разориться и не провалиться?
+17
ASP.NET MVC, Web API, Razor и Open Source
3 min
4KTranslation
Исходный код ASP.NET MVC компания Microsoft сделала доступным по лицензии открытого исходного кода с выпуска первой версии. В этот продукт мы внедрили несколько замечательных технологий с открытым кодом и теперь поставляем jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js и JSON.NET как часть этого решения.
Сегодня я рад объявить о том, что исходный код технологий ASP.NET Web API и ASP.NET Web Pages (также известной как Razor) доступен по лицензии открытого исходного кода (Apache 2.0). Также мы усиливаем прозрачность разработки всех трёх проектов путём размещения их хранилищ кода на CodePlex (используя поддержку Git, о чём было объявлено на прошлой неделе). Поступив так, мы реализуем более открытую модель разработки, когда каждый член сообщества сможет дать отзыв о коде, исправлении ошибок, новых возможностях разработки, а также ежедневно собирать и тестировать продукты, используя последние версии исходного кода и тестов.
Сегодня я рад объявить о том, что исходный код технологий ASP.NET Web API и ASP.NET Web Pages (также известной как Razor) доступен по лицензии открытого исходного кода (Apache 2.0). Также мы усиливаем прозрачность разработки всех трёх проектов путём размещения их хранилищ кода на CodePlex (используя поддержку Git, о чём было объявлено на прошлой неделе). Поступив так, мы реализуем более открытую модель разработки, когда каждый член сообщества сможет дать отзыв о коде, исправлении ошибок, новых возможностях разработки, а также ежедневно собирать и тестировать продукты, используя последние версии исходного кода и тестов.
+20
Применение атрибутов в C#
6 min
96K
Перед тем, как вы нажмете подробнее, несколько предупреждений:
1. Если вы уже работали с атрибутами, то, возможно, вам будет неинтересно.
2. При написании демонстрационного примера были допущены существенные упрощения (например, отказ от MVVM), с целью облегчения восприятия материала про атрибуты.
+15
Документирование по ГОСТ 34* — это просто
12 min
497KСегодня мы поговорим об отечественных стандартах на проектную документацию. Как эти стандарты работают на практике, чем они плохи и чем хороши. При разработке документации для государственных и серьезных частных заказчиков у нас обычно нет выбора — в требования по документированию ТЗ вписано соблюдение стандартов. На практике мне приходилось сталкиваться с различными примерами недопонимания структуры стандартов, того, что должно быть в документах и зачем эти документы нужны. В итоге из-под пера техписателей, аналитиков и специалистов выходят порой такие перлы, что непонятно, в каком состоянии сознания они писались. А ведь на самом деле все достаточно просто. Поиск по Хабру не вернул ссылок на более-менее целостный материал на данную тему, потому предлагаю закрасить этот досадный пробел.
+56
Information
- Rating
- Does not participate
- Location
- Пенза, Пензенская обл., Россия
- Date of birth
- Registered
- Activity