Pull to refresh
12
0

User

Send message

Делаем библиотеку написанную на .Net понятной для Unmanaged кода

Reading time3 min
Views10K
Пол года проработав в компании, которая занимается программированием на MQL под Meta Trader столкнулся с таким заказом: клиенту нужно что бы программа была написана на C# или VB.Net.

Задача была в том, что бы написать программу на C# и dll на том же языке, которая связывает приложение с торговым советником на MQL. С одной стороны мне это на руку, так как C# изучаю больше года, с другой — стало непонятно, а как же это делается и вообще возможно ли это?
image
Читать дальше →
Total votes 43: ↑27 and ↓16+11
Comments40

Гипербург — трехмерный вариант игры «Каркассон»

Reading time5 min
Views2.3K
Недавно на одном из форумов, посвященных многомерным пространствам, был задан вопрос: «А какие игры реализованы в нетривиальных пространствах, в частности, нет ли где реализации игры Каркассон на плоскости Лобачевского?» Вопрос мне показался интересным, тем более, что про эту игру я ни разу не слышал.

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

Понятно, что простор для обобщений в сторону нетривиальной геометрии огромен. Можно вместо квадратных карточек разработать треугольные или шестиугольные. Можно укладывать квадратные карточки на поверхность куба (появится 8 особых точек, в которых сходятся 3 а не 4 карточки, но это не очень принципиально). Можно нарисовать на плоскости Лобачевского квадратную сетку, в каждой вершине которой сходится 5 (или 6, или бесконечно много) квадратов. А можно заменить квадратные клетки на кубические и строить карту в пространстве.

Я выбрал последний вариант. Очень уж интересно было посмотреть на то, как будет выглядеть карта местности на четырехмерной планете.

Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments25

Data Mining в онлайн играх

Reading time11 min
Views32K
АионВо всех онлайн сервисах и играх самая большая доля аудитории уходит прямо на старте – в первые же минуты и часы знакомства с продуктом. Этой теме уже посвящены сотни книг и статей с самыми различными гипотезами успеха и причин лояльности аудитории – уникальность, простота, юзабилити, бесплатность, обучение или инструкция, эмоциональность, и еще множество факторов считаются крайне важными.

Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.
Заглянуть в будущее
Total votes 214: ↑206 and ↓8+198
Comments87

Использование DSL в Visual Studio

Reading time11 min
Views6.2K

Введение


Раньше я ни когда не задумывался над разработкой инструментов, упрощающих разработку в Visual Studio, и чаше создавал различные сторонние утилиты для помощи себе в разработке. Но, как обычно бывает, настал переломный момент.
Однажды встала задача разработки платформы, на базе которой надо было бы разрабатывать специализированные решения.
Хотелось максимально упростить разработку решений на платформе, и при этом не урезать возможность гибкой настройки.
Возникло два основных направления решения проблемы:
  • Разработать собственные инструменты для создания решений
  • Создать вспомогательные средства, встроенные в среду разработки

Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments3

Пишем примитивный и никому не нужный компилятор

Reading time9 min
Views174K
Я считаю, что каждый программист должен написать свой компилятор.

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

В посте мы рассмотрим, как можно написать свой компилятор C-подобного языка меньше чем за час, исписав всего 300 строчек кода. В качестве бонуса, сюда входит и код виртуальной машины, в байткод которой будет компилироваться исходник.
Читать дальше →
Total votes 247: ↑231 and ↓16+215
Comments67

Отладка javascript на мобильных устройствах

Reading time3 min
Views19K
Недавно возникла у меня необходимость создать небольшое html5 приложение для смартфонов.
Почему html5? Все предельно просто: при наличии мобильной версии, сайт можно за пару дней допилить до необходимого состояния или же написать с нуля (что не так важно) и в дальнейшем заниматься поддержкой только одной версии кода, не распыляясь на различные платформы.
Отлаживаем наше приложение в телефоне
Total votes 21: ↑18 and ↓3+15
Comments25

Линейная алгебра для разработчиков игр

Reading time19 min
Views781K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18+278
Comments61

Введение в Microsoft “Roslyn” CTP

Reading time4 min
Views33K

Почему Roslyn?


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

Как пишет Soma в своём блоге, часть Visual Studio language team работает на проектом, который называется Roslyn. Его главная цель — переписать компиляторы C# и VB и создать языкове сервисы в управляемом коде. С чистым, современным и управляемым кодом наша команда сможет быть более продуктивной, внедрять инновации быстрее и выдавать больше возможностей скорее и с лучшим качеством.

Более того, мы открываем компиляторы C# и VB со всей их внутренней информацией, делая доступным для вас анализ кода. Мы предоставляем публичное API и обеспечиваем точки расширения в языковых сервисах C# и VB.

Это открывает новые возможности для расширений VisualStudio — написание мощных инструментов рефакторинга и утилит языкового анализа, а так же позволит любому использовать наши парсеры, семантические движки, генераторы кода и сценариев в своих проложениях.
Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments13

Вышел Microsoft “Roslyn” CTP

Reading time1 min
Views8.4K
Большинство компиляторов на текущий момент являются чёрными ящиками — они превращают исходный код в объектные файлы или сборки. Цель “Roslyn Project” от компании Microsoft — открыть компиляторы Visual Basic и C#, дав разработчикам возможность пользоваться API, предоставляющим SyntaxTree, Emit API, Symbol API, Binding & Flow Analysis API. Над API надстраивается множество полезных сервисов:


Roslyn можно использовать для генерации кода, анализа и оптимизации, а так же поддержки сценариев и интерактивного использования VB и C#. На днях вышел Microsoft “Roslyn” October 2011 CTP, который уже можно скачать и попробовать на деле. Под катом подборка ссылочек по теме.
Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments7

Roslyn Project — compiler as a service

Reading time1 min
Views3.7K
Не так давно в рамках конференции Build был доклад «Future directions for C# and Visual Basic» от Anders Hejlsberg, в котором анонсировался Roslyn Project. Сейчас об этой разработке известно не так много, но я постараюсь осветить наиболее интересные моменты, имеющиеся на данный момент.

В настоящее время компиляторы C# и Visual Basic представляют из себя чёрный ящик — они берут исходный высокоуровневый код и выдают нам готовый IL-код. Roslyn Project представляет из себя compiler as a service, т.е. компилятор, предоставляющий разработчику API, позволяющее добираться до его внутренних данных. Теперь можно анализировать код и принимать участие в компиляции — проводить модификацию исходного кода, создавать дополнительную функциональность для C# и VB.
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments8

Поиск пути на гексагональной сетке

Reading time2 min
Views16K
На самом деле никому не открою ничего нового, но то что находил, было с хитрой математикой (точнее не такой уж хитрой, но все равно лично для меня сложноватой для восприятия), а тут вроде получился простой свой велосипед.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments24

Оценка сложности задач

Reading time2 min
Views13K

Оценка задач


При оценке сложности задач очень часто сложно выдать абсолютную оценку. Гораздо легче оценить относительный размер двух задач, т.е., например, сказать, что задача А в два раза больше задачи Б.
При agile-процессе разработки приходится оценивать много пользовательских историй.
Используя попарное сравнение снижается погрешность в определении оценок, и более того, эту погрешность можно вычислить.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments18

Как скрестить управление рисками и Agile?

Reading time3 min
Views17K

Мы продолжаем разговор об особенностях применения Scrum в заказной разработке и в этой статье я расскажу, как скрестить управление рисками и Agile.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments4

PostSharp. Аспектно-ориентированное программирование vs Dependency Injection

Reading time7 min
Views6.4K
В моем разговоре с Андресом Хейлсбергом о страхах, неуверенности и сомнений относительно Аспектно-Ориентированного программирования я упомянул про общую путаницу и непонимание что АОП и DI – это конкурирующие концепции. В этой статье я попробую объяснить вам обо всех различиях и сходствах в этих двух подходах.Недавно я прекрасно провел время за чтением статьи Дино Эспосито: «Аспектно-ориентированное программирование, interception и unity 2.0», в декабрьском номере MSDN Magazine. Это великолепная статья и я настоятельно советую любому разработчику, вовлеченному в .NET разработку прочитать ее полностью. Как и многие DI фреймворки, и некоторые основные фреймворки (WCF, ASP.NET MVC), Unity предлагает похожую на АОП возможность: interceptors.
Читать дальше →
Total votes 34: ↑25 and ↓9+16
Comments23

Приложение под Хостинг Картинок

Reading time4 min
Views2K
Доброго времени суток, Хабражитель!

Не так давно в этом же блоге Hombrelumbre опубликовал статью о своем стартапе — Хостинг Картинок.
Многие из Вас оценили его за простоту и удобство, некоторые подумали или даже сказали вслух: «Очередной заурядный хостинг картинок, только без рекламы… и то пока-что».

Лично меня этот новый, лишенный всякой назойливой рекламы и вооруженный опрятным интерфейсом сервис подтолкнул к написанию десктоп-клиента с учетом всего того, чего мне и вероятно всем другим не хватало в подобных сервисах. Если конкретизировать:
  • Быстрота и простота добавления и загрузки картинок
  • Возможность просматривать и при необходимости удалять свои изображения, размещенные на сервисе
  • Возможность синхронизации изображений между различными машинами
  • Никакой лишней возни с настройками и мелочами без острой на то необходимости
  • Опрятный и удобный интерфейс, позволяющий быстро выполнять необходимые операции
  • Некоторые дополнительные возможности, которые избавят от необходимости использовать сторонний софт (в разумных пределах, естественно)

Итак, после недолгого обсуждения данной идеи с владельцем хостинга мы пришли к согласию и за пару-тройку выходных (и несколько бессонных ночей) не без помощи Hombrelumbre и его брата накидал дополнение к ресурсу для простой и быстрой загрузки изображений на Хостинг Картинок…
Читать дальше →
Total votes 137: ↑123 and ↓14+109
Comments161

Несколько полезных аспектов для PostSharp

Reading time11 min
Views11K
В .net-е есть несколько серьезных AOP-фреймворков, но ни один их них не «рулит» так как PostSharp. Будучи большим фанатом (а также пользователем) сего фреймворка, хочу представить сообществу несколько «рецептов». Некоторые из них я создал сам, другие нашел в интернете и адаптировал под свои нужды. Тут я покажу несколько самых «сочных» рецептов. А если вы не знакомы с фреймворком или идеологией AOP, могу порекоммендовать вот этот вебкаст. Итак, начнем?

Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments34

Как доделать игру

Reading time9 min
Views28K
На блоге одного из создателей Aquaria и Spelunky есть любопытный пост с советами для тех, кто испытывает проблемы с доведением до конца своих игровых проектов. Этот список советов оказался для меня своего рода «зеркалом», в котором отражены многие проблемы, с которыми сталкивался я сам, и я был удивлен тем, насколько хорошо автору удалось уловить суть этих проблем и предложить свои решения, зачастую бескомпромисные.
image
Приближаясь к заключительной стадии разработки моей игры, я много думал о том, как завершать выполнение проектов в целом. Я заметил, что вокруг много действительно талантливых разработчиков, у которых возникают проблемы с доведением до конца игровых проектов. По правде говоря, я и сам оставил позади себя ряд незавершенных игр… Думаю, у многих та же ситуация. Не всякий проект удается, по разным причинам. Однако если вы стали замечать, что постоянно забрасываете проекты, которые имеют неплохой потенциал, вероятно, стоит оглянуться назад и изучить тому причины.
Читать дальше →
Total votes 142: ↑135 and ↓7+128
Comments54

GreenSQL: Защита SQL-серверов от инъекций

Reading time4 min
Views6.3K
Иногда возникает необходимость использовать клиент-серверное программное обеспечение, реализующее нужный функционал, но крайне уязвимое к SQL-инъекциям. В основном это веб-сайты, сетевые приложения и другие сервисы, доступ к которым открыт широкому кругу пользователей, в том числе и злоумышленникам. В силу различных причин не всегда есть возможность предотвратить SQL-инъекции на уровне приложения — исходный код может быть закрыт, либо, в случае открытого кода, недостаточно знаний для внесения в него изменений, либо эта операция является дорогостоящей.

Обеспечить безопасность приложения в данном случае поможет GreenSQL — файрволл или прокси для SQL-серверов. Сервис GreenSQL размещается между вашим приложением и SQL-сервером, принимает sql-запросы от приложения и в зависимости от степени его благонадежности либо перенаправляет их на целевой SQL-сервер, либо отвергает.


Читать дальше →
Total votes 18: ↑12 and ↓6+6
Comments19

[Перевод] Тепловые карты: Настраиваем геймплей с помощью простой системы сбора и анализа игровых показателей

Reading time15 min
Views5K
В этой статье, взятой из сентябрьского выпуска 2010 года журнала Game Developer's Magazine, Chris Pruett, работающий в Google консультантом по разработке игр, рассказывает как он быстро и несложно реализовал удобную систему оценки игрового процесса в своей игре на платформе Android, под названием Replica Island.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments14

Прячем текст в MP3

Reading time4 min
Views21K
В мире все люди делятся на два типа: одни хотят, что -то спрятать, другие же наоборот хотят, что то найти. Сегодня мы будем на стороне первых. Мы будем прятать.
О том как спрятать файлы в системе многие наверняка и так знают. А вот о том, как спрятать текст в файлы, но так что бы его не было видно, знают немногие. И так приступим.
Читать дальше →
Total votes 20: ↑11 and ↓9+2
Comments19

Information

Rating
Does not participate
Registered
Activity